UbuntuでPython3.3を使用してvirtualenvを作成する方法は?


46

Precise Pangolin amd64を実行しています。Python 3.3をppa:fkrull / deadsnakesからインストールしました。

さて、この新しいPythonバージョンをvirtualenvで実際に使用したいと思います。しかし、どうすればこれを行うことができますか?次のエラーが表示されます。

$ virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Running virtualenv with interpreter /usr/bin/python3.3
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3
Also creating executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/site.py", line 73, in <module>
    __boot()
  File "/usr/local/lib/python2.7/site-packages/site.py", line 2, in __boot
    import sys, imp, os, os.path   
ImportError: No module named 'imp'
ERROR: The executable /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 is not functioning
ERROR: It thinks sys.prefix is '/home2/USERNAME/.virtualenvs' (should be '/home2/USERNAME/.virtualenvs/pywork3')
ERROR: virtualenv is not compatible with this system or executable

代わりに、python3.3virtualenvの呼び出しに明示的に使用すると、次のエラーが表示されます。

$ python3.3 /usr/bin/virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Traceback (most recent call last):
  File "/usr/bin/virtualenv", line 2, in <module>
    import virtualenv
ImportError: No module named 'virtualenv'

立ち往生しています。どんな助けも大歓迎です!

編集: @thefourtheyeのアドバイスに従い、ローカルsite-packagesディレクトリを削除しました(実質的に削除するだけですsite.py)。今、私はさらに一歩進んでいますが、virtualenvは行方不明について不平を言っていeasy_installます:

 Error [Errno 2] No such file or directory:   
'/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install' while executing command    
/home2/USERNAME/.virt...rk3/bin/easy_install /usr/share/python-virtualenv/pip-1.1.tar.gz

python3-setuptoolseasy_installのPy3バージョンをインストールするパッケージをインストールしました。

EDIT2:

ここでは詳細な出力は、明示的に渡さずに、だ--distribute--no-site-packagesこの2つのスイッチが私のデフォルトの動作であるため、virtualenvの

$ virtualenv --verbose -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Running virtualenv with interpreter /usr/bin/python3.3
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3
Symlinking Python bootstrap modules
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/config-3.3m
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/lib-dynload
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/os.py
  Ignoring built-in bootstrap module: posix
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/posixpath.py
  Cannot import bootstrap module: nt
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/ntpath.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/genericpath.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/fnmatch.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/locale.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/encodings
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/codecs.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/stat.py
  Cannot import bootstrap module: UserDict
  Cannot import bootstrap module: copy_reg
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/types.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/re.py
  Cannot import bootstrap module: sre
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_parse.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_constants.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/sre_compile.py
  Ignoring built-in bootstrap module: zlib
  Cannot import bootstrap module: _abcoll
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/warnings.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/linecache.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/abc.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/io.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/_weakrefset.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/copyreg.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/tempfile.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/random.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/__future__.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/collections
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/keyword.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/tarfile.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/shutil.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/struct.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/copy.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/base64.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/bisect.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/_dummy_thread.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/hashlib.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/heapq.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/hmac.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/reprlib.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/rlcompleter.py
  Symlinking /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/weakref.py
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/site-packages
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/site.py
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/orig-prefix.txt
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/no-global-site-packages.txt
Creating parent directories for /home2/USERNAME/.virtualenvs/pywork3/include
Symlinking /home2/USERNAME/.virtualenvs/pywork3/include/python3.3m
Creating /home2/USERNAME/.virtualenvs/pywork3/bin
New python executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3
Changed mode of /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 to 0o755
Also creating executable in /home2/USERNAME/.virtualenvs/pywork3/bin/python
Changed mode of /home2/USERNAME/.virtualenvs/pywork3/bin/python to 0o755
Testing executable with /home2/USERNAME/.virtualenvs/pywork3/bin/python3.3 -c "
import sys
prefix = sys.prefix
if sys.version_info[0] == 3:
    prefix = prefix.encode('utf8')
if hasattr(sys.stdout, 'detach'):
    sys.stdout = sys.stdout.detach()
elif hasattr(sys.stdout, 'buffer'):
    sys.stdout = sys.stdout.buffer
sys.stdout.write(prefix)
"
Got sys.prefix result: '/home2/USERNAME/.virtualenvs/pywork3'
Creating /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils/__init__.py
Writing /home2/USERNAME/.virtualenvs/pywork3/lib/python3.3/distutils/distutils.cfg
Using existing distribute egg: /usr/share/python-virtualenv/distribute-0.6.24.tar.gz
Installing distribute..............................................................................................................................................................................................................................................................................................................................................................................................................done.
Installing existing pip-1.1.tar.gz distribution: /usr/share/python-virtualenv/pip-1.1.tar.gz
Installing pip...
  Error [Errno 2] No such file or directory: '/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install' while executing command /home2/USERNAME/.virt...rk3/bin/easy_install /usr/share/python-virtualenv/pip-1.1.tar.gz
...Installing pip...done.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 2283, in <module>
    main()
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 938, in main
    never_download=options.never_download)
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 1054, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 643, in install_pip
    filter_stdout=_filter_setup)
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 976, in call_subprocess
    cwd=cwd, env=env)
  File "/usr/lib/python3.3/subprocess.py", line 818, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.3/subprocess.py", line 1416, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: '/home2/USERNAME/.virtualenvs/pywork3/bin/easy_install'

わかりやすくするために、次のコマンドを試してみてください(を除くdistributevirtualenv --no-site-packages -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
-don.joey

私も試してみましたが--setuptools、結果はまったく同じです(配布のインストールを含む)。
andreas-h

14.04では、すべてが問題なく機能します。
アンティハアパラ14

回答:


25
  1. サイトパッケージのバックアップを作成します。

    cp -r /usr/local/lib/python2.7/site-packages/ /tmp/site-packages

  2. そのディレクトリを切り捨てる

    rm -rf /usr/local/lib/python2.7/site-packages/

  3. 今、同じことを試してください

    virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3

  4. pipなしでインストールするには

    virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --no-pip

編集: virtualenv(1.7.1.2)のバージョンとpython3.3は互換性がないように見えます。だから、これを試してください

  1. を使用してpython-virtualenvをアンインストールします sudo apt-get remove python-virtualenv

  2. wget http://peak.telecommunity.com/dist/ez_setup.py; sudo python ez_setup.py これにより、最新のeasy_installがインストールされます。

  3. sudo easy_install pip

  4. sudo pip install virtualenv

  5. virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3


興味深いことに、今はさらに一歩進んでいますが、まだそこまでは行きません。私の更新された質問を参照してください
アンドレアス・時間

私はvirtualenvコードを調べています。冗長性を高めて同じコマンドを実行し、完全な出力を表示できると便利です。 virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --verbose
thefourtheye

わかった、私の最新の質問を見てください。
アンドレアス・時間

2時間以上分析しています。distributeは、binディレクトリにeasy_installスクリプトをインストールしないようです。後で手動でインストールできます。だから、私は答えに更新してきたように、ピップせずにインストールしようと、virtualenvのインストール
thefourtheye

1
virtualenvを手動でインストールする代わりに、packages.ubuntu.com / raring / all / python-virtualenv / downloadからUbuntu Raringの.dev パッケージをダウンロードし、でインストールしましたdpkg -i。動作しているようです。どうもありがとう!
andreas-h

58

Python 3.3にはvenvが組み込まれています。

http://docs.python.org/3/library/venv.html#module-venv

単に実行する

pyvenv-3.3 /path/to/environment

そして、それをアクティブにするには

source /path/to/environment/bin/activate

この組み込みバージョンのvirtualenvは、おそらくあなたが慣れているものよりもはるかに柔軟です。たとえば、EnvBuilderを拡張して、ほとんど何でもできます。以下のリンクからEnvBuilderの実装例をコピーして、それをいじることができます:http ://docs.python.org/3/library/venv.html#an-example-of-extending-envbuilder

上記のスクリプトは、virtualenvから抜け出すことを期待するほとんどのことを行う可能性があります。したがって、easy_installとpipを使用してvirtualenvが必要な場合は、準備ができているはずです。

参照@MarkOfSineさんあなたはまだ混乱している場合に動作させるにはどのように明確にするため、以下の編集。


上記に加えて、ドキュメントに従って:
たとえば、実行後:を実行pyvenv-3.3 /path/to/my_project/venv
できますがdistribute_setup.py、これはさまざまなことをしているようですが、本質的にはディレクトリeasy_installで終わります./my_project/venv/bin
これは、インストールpipなどに使用できます。

どこdistribute_setup.pyから入手するべきかはわかりませんので、私は次からダウンロードしました:

http://python-distribute.org/distribute_setup.py

アクティブ化された環境の使用:

cd /path/to/my_project
source venv/bin/activate

走った:

python distribute_setup.py

そして

easy_install pip

次に、Python 2.xのvirtualenvでよりインラインで仮想環境のセットアップを完了しました


2
素敵な1 -私はこれを認識していませんでした...
アンドレアス・時間

1
実際、これは「実際の」仮想環境ではないようです。アクティブ化した後、pipもeasy_installも使用できません。
andreas-h

@ andreas-h自分でインストールする必要があります。それは「本物」ではありません。
クリス

1
@アンドレアス-Hはまた、あなたがあなた自身を好きに追加するスクリプトを作成することができるように設計されています。..参照docs.python.org/3/library/...
クリス・

端末がpipをインストールするときに間違った権限について叫び続けている場合は、easy_installの正しいバイナリを使用しているかどうかを確認してください。virtualenvでバイナリを明示的に選択できます./venv/bin/easy_install pip
OrangeTux


9

これは非常に複雑です。に含まれている場合はpython3、次のように作成します。

python3 -m venv

エイリアスを作成することもできます

alias virtualenv3='python3 -m venv'

マシンによっては、インタープリターを指定する必要がある場合があります。

alias virtualenv3='python3 -m venv -p python3'

1
python3-venv少なくともUbuntu 14.04では、パッケージも必要です。
gioele

私にとっても(14.04)、パッケージはと呼ばれていましたpython3.4-venv
tobek

バージョン18.04も
ファニー

2

私のために働いたステップ:MAC OSX 10.9.5で

  1. Python-3.4.3を手動でダウンロードしてインストールします。

    P3PATH=/Users/$USER/Python3
    mkdir -p $P3PATH
    cd $P3PATH
    tar -zxvf Python-3.4.3.tgz
    ./configure --prefix=$P3PATH/Python-3.4.3
    make; make install
  2. virtualenvを作成します。

    $P3PATH/Python-3.4.3/bin/pyvenv py3env
    source py3env/bin/activate

注:動作
virtualenv -p <path to python3> py3envしませんでした:

Error due to zlib

これはDebian 7(wheezy)でも正常に機能します。ちょうど別のP3PATH
rubo77

Debianベースのディストリビューションのコンテナー内ユーザーの場合は、必ずインストールlibssl-devzlib1g-devて、pythonが_ssl.so zlib.soでコンパイルされるようにしてください
Nehal J Wani

1
On Ubuntu 14.04 

sudo apt-get install python3-pip

sudo pip install virtualenv

virtualenv-3.4 --no-site-packages venv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.