17

python3.3 を介して純粋に解釈されている仮想環境で遊んでみたいと思います。私のシステム (Ubuntu 13.04) では、仮想環境を作成する方法が 2 つあります。

virtualenv env

また:

pyvenv-3.3 env

古い忠実なvirtualenvを使用すると、期待どおりにすべてを使用できますが、PIP はすべてを python3.3 ライブラリではなく python2.7 ライブラリにインストールします。したがって、次を使用してスクリプトを呼び出す

python3 script.py 

まだ動作していないようです:

python script.py 

魅力のように機能します。しかし、明らかにpython2.7を使用している必要があります


代わりに、Python3+ ( pyvenv-3.3) の「組み込み」 venv を使用すると、すべてが少しおかしくなりそうです。python3.3 lib フォルダーを venv に正しく配置しますが、PIP を使用してモジュールをインストールすることは、仮想環境ではなくグローバル環境を参照しているように見えるため、もはや不可能です。

それで、私の質問に進みます:

Python3.3(+) と PIP のみを python3.3 ライブラリにインストールして、動作する仮想環境を取得することをどのように推奨しますか?

4

7 に答える 7

51

次のようなことを試すことを検討してください。

  1. 仮想環境を作成する

    $ python3 -m venv myvenv
    $ source myvenv/bin/activate
    (myvenv)$
    
  2. 公式の pip installation instructions に従ってpip をインストールします。 pip v1.5.1 以降、pip をインストールする前に setuptools を手動でインストールする必要はなくなりました。

    (myvenv)$ curl https://bootstrap.pypa.io/get-pip.py | python
    
  3. 仮想環境を非アクティブ化してから再アクティブ化します。 そうしないと、pip が正しく機能しません。

    (myvenv)$ deactivate
    $ source myvenv/bin/activate
    (myvenv)$ which pip
    

より長い応答:

はい、同様の問題がありました。これは、システムに存在する他のすべての python と pips と、インストールされなかった pip に関係しています。これは、慣れ親しんでいる非「コア」仮想環境の場合と同様です。

何らかの理由で、venv モジュールは setuptools と pip をインストールしません。

私は上記を実行しましたが、これまでのところ、とても良いです。

Python 3.3の venv はpip を単独ではインストールしません:

Distribute や pip などの一般的なインストール ツールは、venv で期待どおりに機能します。つまり、venv がアクティブな場合、明示的に指示する必要なく、Python パッケージを venv にインストールします。もちろん、最初にそれらを venv にインストールする必要があります。

venvのPython 3.4実装は、デフォルトで pip をインストールします。

バージョン 3.4 で変更: デフォルトで pip をインストールします

http://docs.python.org/3/library/venv.html

which pipと でピップを確認できますpip -V。venv を非アクティブ化/アクティブ化しておらずpip -V、正しいピップが表示されないwhich pip場合でも、正しいパスが表示される場合があります。

于 2013-11-07T23:24:15.313 に答える
2

これは私のために働く:

> virtualenv-3.3 env
...
> source env/bin/activate
> pip install simple-date
...
> python
Python 3.3.0 (default, Mar 27 2013, 20:56:52) 
[GCC 4.7.2 20130108 [gcc-4_7-branch revision 195012]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import simpledate
>>>

残念ながら、当時どのように virtualenv-3.3 をインストールしたのか完全にはわかりません。私はおそらく次のようなことをしたと思います:

> wget http://python-distribute.org/distribute_setup.py
> python3.3 distribute_setup.py
> easy_install-3.3 virtualenv

[編集: はい、 http ://www.acooke.org/cute/GettingPyt0.html にある私のメモで確認されているようです]

これは python-3.3 固有の virtualenv であることに注意してください。

コメントで説明されているように、pyvenv-3.3 を動作させることができませんでした。

于 2013-08-10T04:29:59.770 に答える
1

OS Xでも同じ問題が発生しました。pip実行可能ファイルでさえ、 Python 2用であるように見えます。実行可能ファイル(またはそのバリアント)を使用すると、問題なく動作するはずです。bin/easy_installpip3

于 2014-01-16T23:20:40.230 に答える
1

PPA ppa:fkrull/deadsnakesを使用して、Elementary Os (Ubuntu ベースの Linux ディストリビューション) に Python 3.4 をインストールしました。

一つ指摘したい。Python 3.4 Ubuntu パッケージでは、**仮想環境を ( pyvenv-3.4で) 作成すると、 binではなくlocal/binにpip がインストールされます。

したがって、それを使用するには、bin/activateスクリプトの 44 行目を変更する必要があります。

PATH="$VIRTUAL_ENV/bin:$VIRTUAL_ENV/local/bin:$PATH"
于 2014-07-01T09:49:00.243 に答える
0

ドキュメントでよく言及されています:

Distribute や pip などの一般的なインストール ツールは、venv で期待どおりに機能します。つまり、venv がアクティブな場合、明示的に指示する必要なく、Python パッケージを venv にインストールします。**もちろん、最初にそれらを venv にインストールする必要があります。これは、venv をアクティブにして distributed_setup.py を実行し、続いて easy_install pip を実行することで実行できます**。または、ソース tarball をダウンロードし、解凍後に venv を有効にして python setup.py install を実行することもできます。

于 2014-03-10T05:56:16.370 に答える