Ich verwende Precise Pangolin amd64. Ich habe Python 3.3 von ppa: fkrull / deadsnakes installiert.
Jetzt möchte ich tatsächlich nutzen diese neue Python - Version in einem virtualenv. Aber wie kann ich das machen? Ich erhalte folgenden Fehler:
$ 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
Wenn ich stattdessen explizit python3.3
virtualenv aufrufe, erhalte ich die folgende Fehlermeldung:
$ 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'
Ich stecke fest. Jede Hilfe wird sehr geschätzt!
BEARBEITEN: Nach dem Hinweis von @thefourtheye habe ich mein lokales site-packages
Verzeichnis gelöscht ( praktisch nur gelöscht site.py
). Jetzt komme ich noch einen Schritt weiter, aber virtualenv beschwert sich über ein Fehlen 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
Ich habe das Paket python3-setuptools
installiert, das die Py3-Version von easy_install installiert.
EDIT2:
Hier ist die ausführliche Ausgabe ohne explizite Übergabe von --distribute
und --no-site-packages
, da diese beiden Schalter das Standardverhalten meiner virtuellen Umgebung sind :
$ 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'
distribute
):virtualenv --no-site-packages -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
?--setuptools
, und das Ergebnis ist genau das gleiche (einschließlich der Installation von Distribute).Antworten:
Sichern Sie Ihre Site-Pakete.
cp -r /usr/local/lib/python2.7/site-packages/ /tmp/site-packages
Schneiden Sie dieses Verzeichnis ab
rm -rf /usr/local/lib/python2.7/site-packages/
Versuchen Sie es jetzt gleich
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
Ohne Pip zu installieren
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --no-pip
EDIT: Es sieht so aus, als ob die Versionen von virtualenv (1.7.1.2) und python3.3 nicht kompatibel sind. Also, bitte versuchen Sie dies
Deinstallieren Sie python-virtualenv mit
sudo apt-get remove python-virtualenv
wget http://peak.telecommunity.com/dist/ez_setup.py; sudo python ez_setup.py
Dadurch wird die neueste Version von easy_install installiert.sudo easy_install pip
sudo pip install virtualenv
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3
quelle
virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3 --verbose
dpkg -i
. Scheint jetzt zu arbeiten. Danke vielmals!In Python 3.3 ist venv integriert.
http://docs.python.org/3/library/venv.html#module-venv
Einfach rennen
Und dann, um es zu aktivieren
Diese integrierte Version von virtualenv ist viel flexibler als Sie es wahrscheinlich gewohnt sind. Beispielsweise können Sie EnvBuilder so erweitern, dass Sie so ziemlich alles tun, was Sie wollen. Sie können eine Beispielimplementierung von EnvBuilder über den folgenden Link kopieren und damit herumspielen: http://docs.python.org/3/library/venv.html#an-example-of-extending-envbuilder
Das obige Skript macht wahrscheinlich das meiste, was wir von virtualenv erwarten. Wenn Sie also nur ein virtuelles Env mit easy_install und pip benötigen, sollten Sie bereit sein.
In den folgenden Änderungen von @MarkOfSine erfahren Sie , wie Sie loslegen können , wenn Sie immer noch verwirrt sind.
Um dies zu ergänzen und wie in den Dokumenten beschrieben:
Zum Beispiel nach der Ausführung:
pyvenv-3.3 /path/to/my_project/venv
Sie können ausführen
distribute_setup.py
, was verschiedene Dinge zu tun scheint, aber im Grunde landen Sieeasy_install
in Ihrem./my_project/venv/bin
Verzeichnis.Dies kann dann zum Installieren
pip
und dergleichen verwendet werden.Es steht nicht fest, woher Sie es nehmen sollen
distribute_setup.py
, also habe ich es heruntergeladen von:und unter Verwendung der aktivierten Umgebung:
lief:
und
Womit dann die Einrichtung der virtuellen Umgebung mehr inline mit virtualenv auf Python 2.x abgeschlossen ist
quelle
./venv/bin/easy_install pip
.Es ist einfacher als es scheint:
funktioniert wirklich :)
quelle
Du machst das viel zu kompliziert. Wenn es in enthalten ist
python3
, erstellen Sie es einfach mit:Sie können sogar einen Alias erstellen, wenn Sie möchten
Je nach Computer müssen Sie möglicherweise den Interpreter angeben:
quelle
python3-venv
wird auch benötigt, zumindest unter Ubuntu 14.04.python3.4-venv
.Die Schritte, die bei mir funktionierten: Unter MAC OSX 10.9.5
Laden Sie Python-3.4.3 manuell herunter und installieren Sie es .
Erstellen Sie eine virtuelle Umgebung.
Hinweis:
virtualenv -p <path to python3> py3env
hat nicht funktioniert:quelle
libssl-dev
undzlib1g-dev
so , dass Python mit _ssl.so zlib.so zusammengestelltquelle