我说的是Doug Hellman 的 virtualenvwrapper。好吧,按照他的说法,一旦我们安装了 virtualenvwrapper,我们应该按照这里的解释编辑 .bashrc 文件
我们所做的是添加以下三行代码:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
其中 .virtualenv 是放置 venv 的目录。Devel 是代码所在的目录。
观察 1:
当我执行时mkvirtualenv proj1,会在 .virtualenv 中创建一个名为 proj1 的目录,但不在 Devel 中。
观察 2:
当我这样做时mkproject proj1,会在 .virtualenv 和 Devel 中创建一个目录。
现在的问题:
请解释观察 1。
如果两个项目具有相同的要求并且我想使用单个 env 并且不想从创建另一个 virtualenv 开始并重新安装已安装的相同内容,该怎么办。我该怎么做呢?
我正在为一群 Python 新手建立一个新系统,以使用 Python 进行特定类型的科学工作。它有 2 个不同的 python(32 位和 64 位),我想安装一组系统上的用户将使用的通用模块。
有人告诉我 virtualenv (+ wrapper) 对这种情况有好处,但我不清楚如何。
我喜欢隔离环境的想法,然后让他们根据案例 (c) 的问题键入“workon science32”、“workon science64”。
任何建议表示赞赏。
使用 virtualenvwrapper,我为一个 virtualenv 安装了 Django。现在我无法在那个环境之外到达它。我希望能够在任何 virtualenv 之外和新的 virtualenv 内启动新的 Django 项目。
我需要重新安装 Django 还是可以从我的第一个 virtualenv 以某种方式导入安装?
我正在尝试设置我的 imac(小牛)以便能够轻松切换到不同版本的 python。我成功地使用 rbenv 为 Ruby 项目完成了这项工作,并发现 pyenv 正是我在这方面所寻找的。我遇到的问题是使用 pyenv 创建虚拟环境。
我尝试安装 pyenv-virtualenv,因为我认为这会与 pyenv 配合使用,但目前它似乎已损坏,我很难得到详细的响应。首先,'activate' 命令不起作用(它说该命令不存在,尽管有文档),一旦我安装了 pyenv-virtualenv 插件,pyenv 就不再使用正确的 python 版本。最终我删除了插件,pyenv 又开始工作了。
现在我想在 pyenv 中使用常规的 virtalenvwrapper,但不断遇到我没有足够经验来解决的错误。
首先,我根据文档安装了 pyenv 和 virtualenv 以及 virtualenvwrapper 。然后我用 pyenv 安装了 python 2.7.6。这似乎工作正常,但是当我尝试在 .bash_profile 中配置 virtualenvwrapper 设置时 - 我遇到了以下错误:
-bash: /usr/local/bin/python: No such file or directory
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenv has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is
set …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 Makefile,我想在 Makefile 中调用 virtualenvwrapper 命令“deactivate”。
该线程的答案How to left/exit/deactivate a python virtualenv? 有一条评论说“deactivate”命令不是二进制文件,也不是脚本,它是激活 virtualenv 时创建的 dinamyc 别名 shell。
那么,我该怎么做呢?
当我被迫更改项目目录名称时,出现了问题。
首先Virtualenvwrapper没有看到我的项目,所以我将WORKON_HOME的环境变量更改为新的项目目录。然后我可以激活我的环境。但现在当我的项目正在做任何事情时,它认为它位于旧目录中,而不是新目录中。我不知道如何改变这个。我查看了参考资料,并寻找了实际指向项目所在位置的位置,但我都没有找到。请帮忙。
我已经将以下行添加到我的bash中,但是mkproject继续在虚拟环境中创建python 2.7文件夹,因此我仍然需要使用-p python3,我不想这样做.
export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
source /usr/local/bin/virtualenvwrapper_lazy.sh
Run Code Online (Sandbox Code Playgroud) 我对使用时安装的 Python 版本感到困惑mkvirtualenv。在任何 virtualenv 之外,这就是我所拥有的。
$ which python
/opt/local/bin/python << MacPorts installed Python
$ python -V
Python 2.7.13
$ python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 1.0.2k 26 Jan 2017
Run Code Online (Sandbox Code Playgroud)
到目前为止还好。
现在,创建虚拟环境...
$ mkvirtualenv foo
[normal stuff here]
(foo) $ which python
/Users/me/Workspace/venvs/foo/bin/python
(foo)$ python -V
Python 2.7.10
Run Code Online (Sandbox Code Playgroud)
为什么这个 python 是 2.7.10?而不是 python 2.7.13?
$ python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.8zh 14 Jan 2016
Run Code Online (Sandbox Code Playgroud)
这是从哪里来的?
我如何知道mkvirtualenv我想使用哪个版本的 Python?
我想在 Python 3.6 中使用 virtualenvwrapper,但是,我正在使用默认使用 Python 2.7 的 Mac,但我遇到了问题。这是我到目前为止所做的。使用以下命令,我找到了每个 Python 版本的保存位置:
>> which python
>> /usr/bin/python
>> which python3
>> /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Run Code Online (Sandbox Code Playgroud)
我已经成功安装了 virtualenv 和 virtualenvwrapper 使用:
>> pip3 install virtualenv
>> pip3 install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
然后我搜索 virtualenv 和 virtualenv 包装器的位置以确认它们的位置:
>> pip3 show virtualenv
>> Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
>> pip3 show virtualenvwrapper
>> Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Run Code Online (Sandbox Code Playgroud)
如果我去这个站点包目录有以下内容:
virtualenvwrapper
|--- __pycache__
|--- hook_loader.py
|--- project.py
|--- user_scripts.py
virtualenvwrapper-4.8.2-py2.7-nspkg.pth
virtualenvwrapper-4.8.2.dist-info
Run Code Online (Sandbox Code Playgroud)
根据 virtualenvwrapper 的文档,我应该将以下内容添加到我的 shell 启动文件中以确保初始化,将 virtualenvwrapper 的路径更改为我机器上设置的路径:
export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source …Run Code Online (Sandbox Code Playgroud) Raspbian Buster 默认使用 Python3.7。我正在尝试制作一个 Python3.6 virtualenv。我全新安装了带有桌面的 Raspbian Buster(不是带有“推荐软件”的版本)并且已经安装了sudo apt-get update; sudo apt-get upgrade。
sudo apt-get install python3.6-dev以获得 Python 3.6。pip3 install virtualenvwrapper并将适当的行添加到我的 .bashrc 中。mkvirtualenv --python=/usr/bin/python3.6 venv它会出现以下错误Traceback (most recent call last):
File "/home/pi/.local/lib/python3.7/site-packages/virtualenv.py", line 24, in <module>
import distutils.spawn
ModuleNotFoundError: No module named 'distutils.spawn'
Run Code Online (Sandbox Code Playgroud)
我已经搜索了答案,但没有任何帮助。这是我所做的(据我所知)。
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6到我的 .bashrc 中,但没有帮助。python3.6 -m pip install virtualenvwrapper并得到另一个 distutils 错误:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main …Run Code Online (Sandbox Code Playgroud)virtualenvwrapper raspbian python-3.6 python-3.7 debian-buster
virtualenv ×7
python ×5
python-2.7 ×3
django ×1
macos ×1
makefile ×1
python-3.6 ×1
python-3.7 ×1
python-3.x ×1
raspbian ×1