Saya mencoba menginstal Django ke virtualenv yang sudah ada.
Mengikuti instruksi yang tercantum pada situs web pip-install di sini , saya menjalankan yang berikut dari SSH.
name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install django
Namun di bagian bawah instalasi, saya melihat ini:
creating /usr/local/lib/python2.7/dist-packages/django
error: could not create '/usr/local/lib/python2.7/dist-packages/django': Permission denied
Tampaknya sedang mencoba untuk menginstalnya ke direktori global. Saya tidak memiliki hak sudo. Apakah saya melakukan sesuatu yang salah di sini?
Pembaruan: $ PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/star:/usr/bin:/sbin:/bin:/usr/games
python
installation
packages
virtualenv
pip
Luke Sapan
sumber
sumber
easy_install
?which easy_install
untuk melihat apakah Anda menggunakan virtualenv atau sistem.which pip
dihasilkan? Dan apakah Anda melihat kepip
dalammyenv.env/bin/
?Jawaban:
Maaf untuk jawaban terlambat setahun! Saya memiliki masalah yang sama dan memperbaikinya, saya tidak tahu apakah Anda mengubah nama direktori setelah menciptakan lingkungan virtual, saya melakukannya. Jika demikian maka inilah yang saya lakukan.
1.)
deactivate
v-env Anda. Setelah perbaikan Anda perlu me-restart v-env, jadi mungkin jugadeactivate
sekarang. Baik?2.) Sekarang, karena kita membuat v-env di jalur yang berbeda, kita harus mengubah variabel jalur statis dalam file ini.
Agar pip berfungsi, Anda tidak perlu melakukan ini, tetapi saya masih melakukannya.
bin/activate
,bin/activate.csh
,bin/activate.fish
bin/pip
,bin/pip2
,bin/pip2.7
bin/easy_install
,bin/easy_install2.7
3.) Agar pip berfungsi, Anda harus memperbaiki interpreter python dalam file pip, ini juga memiliki lokasi interpreter statis yang ditetapkan oleh virtualenv dalam proses pembuatan.
4.) Agar easy_install berfungsi? Anda menebaknya, perbaiki lokasi juru bahasa.
Saya harap ini membantu semua orang yang membaca ini di masa depan. Maaf OP, karena terlambat.
sumber
grep -rli '/path/to/old/env/bin' * | xargs -i@ sed -i 's/\/path\/to\/old\/env\/bin/\/path\/to\/new\/env\/bin/g' @
. sumberSaya punya masalah yang sama.
Saya menghapus lingkungan virtual dan membuat yang baru, yang memecahkan masalah.
Mungkin bukan jawaban yang Anda harapkan, tetapi karena itu satu-satunya ...
sumber
Baik tanpa hak administratif Anda sangat terbatas pada apa yang dapat Anda lakukan. Jika Anda tidak diizinkan meninggikan diri atau meminta hak istimewa, cara terbaik yang saya temukan adalah menciptakan lingkungan lain, membuat file requirement.txt, unduh semua paket yang Anda perlukan ke mesin Anda (django) yang akan juga dapat ditemukan di file persyaratan Anda dan harus berfungsi
sumber
Punya masalah yang sama. Dalam kasus saya alasannya adalah bahwa virtual env dibuat untuk python2.7 (default) tetapi saya menggunakan pip3 untuk menginstal paket. pip3 tidak ada di virtualenv saya jadi default ke yang global. Bagi saya perbaikannya adalah menggunakan
untuk membuat env.
sumber
Saya telah mengalami masalah yang sama yang disebabkan oleh penggantian nama pengguna. Jawaban Crispy sepenuhnya benar. Dan solusi saya mungkin lebih nyaman.
setps:
1. Masukkan path bin lingkungan virtual Anda, seperti
cd ~/virenv_dir/bin
2. Ganti nama semua file di bawah direktori ini menggunakan perintah sed.
sed -i 's/old_name/new_name/' *
sumber
Dalam kasus saya, saya telah mendefinisikan dua alias (untuk mengatasi beberapa masalah lain pada versi python default):
Dan ini menyebabkan gejala yang sama:
Menghapus alias memecahkan masalah (sebelum atau setelah membuat virtualenv)
sumber
Panggilan
sudo pip
akan memanggil pip global dan bukan pip di virtualenv Anda. Aktifkan / Kerjakan di lingkungan Anda lalu panggil sajapip
, tidaksudo pip
, ini dapat memperbaiki masalah Anda, seperti yang terjadi pada saya.sumber