Djangoを既存のvirtualenvにインストールしようとしています。
Pip-installウェブサイト here に記載されている手順に従って、SSHから以下を実行しました。
name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install Django
ただし、インストールの最下部に次のように表示されます。
creating /usr/local/lib/python2.7/dist-packages/Django
error: could not create '/usr/local/lib/python2.7/dist-packages/Django': Permission denied
それをグローバルディレクトリにインストールしようとしているようです。 Sudo権限がありません。ここで何か悪いことをしていますか?
更新:$ PATH = /var/Django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
1年遅れの回答でごめんなさい!私は同じ問題を抱えて修正しましたが、仮想環境の作成後にディレクトリの名前を変更したかどうかはわかりませんが、私は変更しました。もしそうなら、ここで私がやったことです。
1.)deactivate
あなたのv-env。修正後、v-envを再起動する必要があるので、deactivate
も同様に再起動する必要があります。正しい?
2.)ここで、別のパスにv-envを作成したので、これらのファイルの静的パス変数を変更する必要があります。
ピップを動作させるためにこれを行う必要はありませんが、私はまだ行います。 bin/activate
、bin/activate.csh
、bin/activate.fish
bin/pip
、bin/pip2
、bin/pip2.7
bin/easy_install
、bin/easy_install2.7
3.)pipを機能させるには、pipファイルのpythonインタープリターを修正する必要があります。これには、作成プロセスでvirtualenvによって設定された静的インタープリターの場所も含まれます。
4.)easy_installを機能させるには?あなたはそれを推測しました、インタプリタの場所を修正してください。
これが将来これを読んでいるすべての人に役立つことを願っていますOP、遅れてすみません。
私も同じ問題を抱えていました。
仮想環境を削除して新しい環境を作成し、問題を解決しました。
おそらくあなたが望んでいた答えではありませんが、それだけなので...
まあ、管理者権限がないと、できることは非常に制限されます。自分自身を昇格したり特権を要求したりすることが許可されていない場合は、別の環境を作成し、requirements.txtファイルを作成し、必要なすべてのパッケージをマシンにダウンロードすること(Django)これも要件ファイルにあり、動作するはずです。
私の場合、2つのエイリアスを定義しました(デフォルトのpython version)での他の問題を克服するため):
alias pip='/usr/bin/pip3'
alias python='/usr/bin/python3'
そして、これは同じ症状を引き起こしていました:
[Errno 13] Permission denied: '/usr/lib/python3.6/site-packages'
エイリアスを削除すると問題が解決しました(virtualenvの作成前または作成後)
同じ問題があった。私の場合の理由は、作成された仮想環境がpython2.7(デフォルト)用であったが、pip3を使用してパッケージをインストールしていたためです。私のvirtualenvにはpip3が存在しなかったため、デフォルトでグローバルなものになりました。私にとっての修正は使用することでした
virtualenv flask --python=python3
環境を作成します。
Sudo pip
を呼び出すと、virtualenvでpipではなくグローバルpipが呼び出されます。環境をアクティブ化/作業してから、Sudo pip
ではなくpip
を呼び出すだけで、問題が解決する可能性があります。
ユーザー名を変更することで同じ問題が発生しました。クリスピーの答えは完全に正しいです。そして私の解決策はより便利かもしれません。
setps:
1。 cd ~/virenv_dir/bin
などの仮想環境のビンパスを入力します
2。 sedコマンドを使用して、このディレクトリにあるすべてのファイルの名前を変更します。 sed -i 's/old_name/new_name/' *