我知道这which virtualenvwrapper.sh会找到 virtualenvwrapper bash 脚本。
但是,如何确定安装了哪个版本的 virtualenvwrapper?
在Mac OSX 10.7.5上mkvirtualenv失败:
$ mkvirtualenv tmp
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: virtualenv==1.7.1.2
Run Code Online (Sandbox Code Playgroud)
用pip安装virtualenv virtualenvwrapper:
Downloading/unpacking virtualenv
Downloading virtualenv-1.10.1.tar.gz (1.3MB): 1.3MB downloaded
Running setup.py egg_info for package virtualenv
warning: no files found matching '*.egg' under directory 'virtualenv_support'
warning: no previously-included …Run Code Online (Sandbox Code Playgroud) 在Ubuntu系统上,我试图用tox和多个python版本测试python包.我试图测试的一个python版本是64位Anaconda Python 2.7.在我开始使用Tox进行测试之前,我首先需要让virtualenv与Anaconda合作,因为Tox在内部使用virtualenv.
如您所见,virtualenv已安装在我的Anaconda环境中:
$ conda install virtualenv
Fetching package metadata: ....
Solving package specifications: ....................
# All requested packages already installed.
# packages in environment at /home/me/software/anaconda:
#
virtualenv 13.0.1 py27_0
Run Code Online (Sandbox Code Playgroud)
但是,尝试创建虚拟环境失败:
$ mkvirtualenv test
New python executable in test/bin/python
Installing setuptools, pip...
Complete output from command /home/me/....envs/test/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/me/.local/lib/python2.7/site-packages/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl/pip/__init__.py", line 9, in <module>
File "/home/me/.local/lib/python2.7/site-packages/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl/pip/log.py", line 8, in …Run Code Online (Sandbox Code Playgroud) $ pyenv virtualenv 3.8.0 tf12创建一个 virtualenv ,其中~/.pyenv/versions/3.8.0/envs/tf12包含我们使用安装到其中的包pip install。如果我们创建一个新的项目目录,例如mkdir myfolder && cd myfolder && pyenv local tf12,该项目目录将使用 tf12 环境包含的相同内核和包,因为我们使用了该pyenv local命令。
但我们也有 virtualenvs 和目录创建位于类似和 的mkproject mynewenv地方。工作区是我们放置笔记本、代码和脚本等的地方,相应的 virtualenv 使用执行时处于活动状态的全局 python 版本。~/.ve~/workspace.pynb.py.rmkproject mynewenv
这些使用 创建的 virtualenv 与mkproject mynewenv使用 创建的 virtualenv 是分开的pyenv virtualenv。
我得出的结论是,我们不能将它们一起使用以获得更多可能性。它们是独立使用的。如我错了请纠正我。
I am trying to create a virtual environment using mkvirtualenv with python 3 in Windows but the environment is created with python 2.7.My pip version is also from python 2.7 which i have avoided using
py -m pip install virtualenvwrapper-win
Run Code Online (Sandbox Code Playgroud)
When i do
mkvirtualenv test
Run Code Online (Sandbox Code Playgroud)
environment is created with python 2.7 Please help me with a solution Thanks in advance:)
我很好奇在mkvirtualenv命令的引擎下发生了什么,所以我试图理解它是如何调用的virtualenv.
最简单的结果是确定virtualenv程序在安装后所处的位置以及安装后mkvirtualenv程序所在的位置.所以:-
Calvins-MacBook-Pro.local ttys006 Mon Apr 23 12:31:07 |~|
calvin$ which mkvirtualenv
Calvins-MacBook-Pro.local ttys006 Mon Apr 23 12:31:10 |~|
calvin$ which virtualenv
/opt/local/library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv
Run Code Online (Sandbox Code Playgroud)
所以我在这里看到的奇怪的事情是which mkvirtualenv没有给出任何结果.为什么?
进一步挖掘,在安装它之后的virtualenvwrapper目录中,我只看到3个python文件: -
Calvins-MacBook-Pro.local ttys004 Mon Apr 23 12:28:05 |/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper|
calvin$ ls -la
total 88
drwxr-xr-x 8 root wheel 272 Apr 13 15:07 .
drwxr-xr-x 29 root wheel 986 Apr 15 00:55 ..
-rw-r--r-- 1 root wheel 5292 Apr 13 15:05 hook_loader.py
-rw-r--r-- 1 root wheel 4810 Apr 13 15:07 …Run Code Online (Sandbox Code Playgroud) 我在python 2.7中编写游戏,想要编写游戏开发环境的"bootstrap"脚本,然后调用铲子.如果未检测到virtualenvwrapper,我将使用virtualenv bootstrap解决方案.但是,如果virtualenvwrapper 被检测到,我想用它代替.
问题是virtualenvwrapper内联shell函数不是由我的引导脚本继承的.据我所知,这排除了像"mkvirtualenv NotOrion"这样的运行.由于环境变量"VIRTUALENVWRAPPER_VIRTUALENV" 的设置(在我的情况下,从MacPorts的:/opt/local/bin/virtualenv-2.7),我试图用它直接代替:
#!/usr/bin/env bash
# Name your first "bootstrap" environment:
ENV_NAME=NotOrion
# Options for your first environment:
ENV_OPTS='--no-site-packages --distribute'
unset PYTHONDONTWRITEBYTECODE
function create_virtualenvwrapper_venv {
echo "installing into virtualenvwrapper directory"
cd $WORKON_HOME
$VIRTUALENVWRAPPER_VIRTUALENV $ENV_OPTS $ENV_NAME
cd -
#mkvirtualenv $ENV_NAME
#workon $ENV_NAME
}
function create_standalone_venv {
# not run/snipped
}
if [ -z "$VIRTUALENVWRAPPER_VIRTUALENV" ]; then
create_standalone_venv
else
create_virtualenvwrapper_venv
fi
pip install shovel
shovel help …Run Code Online (Sandbox Code Playgroud) 所以我在Ubuntu 14.04机器上将我的所有工具从python2迁移到python3.4.到目前为止,我已经完成了以下工作:
mkvirtualenv --python=/usr/bin/python3('workon'在下面被调用为'v')现在好奇,你可以清楚地看到它,从virtualenv激活的环境运行python3仍然继承我的$ PYTHONPATH,它仍然为我所有的python2路径设置.这在我的virtualenv中安装/运行程序时会造成严重破坏,因为python3路径显示在旧的python2路径之后,因此python2模块首先在我的程序中导入.在启动virtualenv之前将我的$ PYTHONPATH取消为''修复此问题并且我的程序按预期启动.但我的问题是:
? echo $PYTHONPATH
/usr/local/lib/python2.7/site-packages:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/home/brian/dev
brian@zeus:~/.virtualenvs
? python2
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, pprint
>>> pprint.pprint(sys.path)
['',
'/usr/local/lib/python2.7/dist-packages/pudb-2013.3.4-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Pygments-1.6-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/urwid-1.1.1-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/pythoscope-0.4.3-py2.7.egg',
'/usr/local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/home/brian/dev',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
>>>
brian@zeus:~/.virtualenvs
? v py3venv
(py3venv)
brian@zeus:~/.virtualenvs … 使用virtualenvwrapper,我可以设置单独的virtualenvs并调用workon venv将它们链接到特定的设置文件(例如test_settings.py或dev_settings.py)我使用virtualenv的bin中的钩子进行预设 - preactivate,postactivate,predeactivate和postdeactivate.
是否有类似pyenv的东西?pyenv-virtualenv基于当前目录中设置的.python-version自动切换virtualenvs,因此无需激活,并且.pyenv/versions/venv/bin/dir也没有虚拟包装器所具有的钩子的赞美.
我可以轻松地为各种应用程序环境创建不同的virtualenv,但是如何将它们链接到不同的特定于环境的应用程序设置?
我正在尝试使用virtualenvwrapper基于python 3的方法virtualenv.但是,当我传递可选的解释器参数时,我看到了这个错误.我正在运行Ubuntu 15.04.我尝试重新安装virtualenv,virtualenvwrapper但没有成功.感谢你的帮助!
$ mkvirtualenv scriptcutter --python=/usr/bin/python3
Running virtualenv with interpreter /usr/bin/python3
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 8, in <module>
import base64
File "/usr/lib/python3.4/base64.py", line 9, in <module>
import re
File "/usr/lib/python3.4/re.py", line 336, in <module>
import copyreg
File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying …Run Code Online (Sandbox Code Playgroud) python ×7
virtualenv ×7
python-3.x ×2
anaconda ×1
bash ×1
django ×1
macos ×1
pyenv ×1
python-2.7 ×1
pythonpath ×1
tox ×1
ubuntu ×1
zshrc ×1