GNU/Linux >> Linux の 問題 >  >> Linux

Virtualenv は、$PATH の最初にあるにもかかわらず、間違った python を使用します

私の問題は、最近引っ越したことでした この activate により、別の場所への virtualenv を使用した私のプロジェクト スクリプトが間違っていた VIRTUAL_ENV

$ cat path_to_your_env/bin/activate

... # some declarations

VIRTUAL_ENV="/path_to_your_env/bin/python"  # <-- THIS LINE
export VIRTUAL_ENV

... # some declarations

これを修正するには、VIRTUAL_ENV を更新するだけです activate

また、 bin/pip の最初の行を修正する必要があるかもしれません 実際の Python パスにリンクします。


which というプログラムを取得できない場合 プラットフォームのエグゼキューターよりもチェーンの上位を調べる必要があります。通常、シェルにはコマンドをエイリアスする方法があり、ほとんどの unixy シェルでは alias と入力するだけです。 どのコマンドが再マップされたかを確認します。次に、シェルの構成ファイルに移動してエイリアスを削除するだけです。

python という別名を使う人もいます どの python を使用する必要があるかを整理しようとします。しかし、通常、他のより良い方法があります。たとえば、私の Linux マシンでは python3 はパスにありますが、私が使用している実際の python へのシンボリック リンクです。

[email protected] ~ $ which python3
/usr/bin/python3
[email protected] ~ $ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Feb 17  2016 /usr/bin/python3 -> python3.4
[email protected] ~ $ 

Python を実行している非シェル プログラムは、私と同じものを取得し、仮想環境は自然に機能するため、これは素晴らしいことです。


tdelaney がコメントで提案したように、 alias を実行しました 以前に python にエイリアスを設定していたことがわかりました /usr/bin/python3.5 へ 私の .bashrc で .

.bashrc からそのエイリアスを削除しました 、実行 unalias python 、および source ~/.bashrc そして問題は解決しました。


Cygwin では、ポイント /usr/bin/python へのシンボリック リンクを作成した後でも、まだ問題があります。 F:\Python27\python.exe へ .ここでは、source env/Scripts/activate の後 、 which python まだ /usr/bin/python です .

長い間、私は解決策を考え出しました。 virtualenv env を使用する代わりに 、 virtualenv -p F:\Python27\python.exe env を使用する必要があります シンボリックリンクを作成したにもかかわらず。


Linux
  1. ルートとして実行されているにもかかわらず、読み取り/ run / user / 1000 / gvfsが見つからないのはなぜですか?

  2. あるのにデバイスにスペースが残っていませんか?

  3. OpenCV と python/virtualenv?

  1. ポートをブロックするプロセスが他にない場合でも、Node.js アプリをポート 80 で実行できない

  2. 正しく設定されているにもかかわらず、Gradle が間違った JAVA_HOME を検出する

  3. libffi を認識しているにもかかわらず、PIP インストールで ffi.h が見つからない

  1. cpコマンドの2つの優れた使用法:Bashショートカット

  2. DebianLinuxでのpythonvirtualenv開発環境のセットアップ

  3. パーミッションが正しいにもかかわらず、CD をディレクトリに入れる「パーミッションが拒否されました」