标签: virtualenvwrapper

区分 virturalenvwrapper 的 mkvirtualenv 和 mkproject

我说的是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. 请解释观察 1

  2. 如果两个项目具有相同的要求并且我想使用单个 env 并且不想从创建另一个 virtualenv 开始并重新安装已安装的相同内容,该怎么办。我该怎么做呢?

python virtualenv virtualenvwrapper virtualenv-commands

5
推荐指数
1
解决办法
4106
查看次数

适用于多个用户或组的 Virtualenv

我正在为一群 Python 新手建立一个新系统,以使用 Python 进行特定类型的科学工作。它有 2 个不同的 python(32 位和 64 位),我想安装一组系统上的用户将使用的通用模块。

  • (a) 一些模块对于这两种 python 都是开箱即用的,
  • (b) 一些编译代码并根据 python 进行不同的安装,以及
  • (c) 有些在某些 python 上根本不起作用。

有人告诉我 virtualenv (+ wrapper) 对这种情况有好处,但我不清楚如何。

  1. 我可以使用 virtualenv 跨多个用户帐户设置沙盒模块,而不必为每个用户安装每个模块吗?
  2. 我可以使用 virtualenv 为案例 (a) 节省一些时间,即安装一个模块,但所有 python 都能看到它吗?

我喜欢隔离环境的想法,然后让他们根据案例 (c) 的问题键入“workon science32”、“workon science64”。

任何建议表示赞赏。

python virtualenv virtualenvwrapper

5
推荐指数
1
解决办法
4111
查看次数

我是否需要为新的 virtualenv 重新安装 Django?

使用 virtualenvwrapper,我为一个 virtualenv 安装了 Django。现在我无法在那个环境之外到达它。我希望能够在任何 virtualenv 之外和新的 virtualenv 内启动新的 Django 项目。

我需要重新安装 Django 还是可以从我的第一个 virtualenv 以某种方式导入安装?

python django virtualenv virtualenvwrapper

5
推荐指数
1
解决办法
3522
查看次数

如何配置 virtualenvwrapper 以使用 pyenv

我正在尝试设置我的 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)

virtualenvwrapper python-2.7

5
推荐指数
1
解决办法
5896
查看次数

在 Makefile 上停用 virtualenv

我正在编写一个 Makefile,我想在 Makefile 中调用 virtualenvwrapper 命令“deactivate”。

该线程的答案How to left/exit/deactivate a python virtualenv? 有一条评论说“deactivate”命令不是二进制文件,也不是脚本,它是激活 virtualenv 时创建的 dinamyc 别名 shell。

那么,我该怎么做呢?

makefile virtualenvwrapper

5
推荐指数
1
解决办法
2640
查看次数

如何将virtualenv设置到另一个目录?

当我被迫更改项目目录名称时,出现了问题。

首先Virtualenvwrapper没有看到我的项目,所以我将WORKON_HOME的环境变量更改为新的项目目录。然后我可以激活我的环境。但现在当我的项目正在做任何事情时,它认为它位于旧目录中,而不是新目录中。我不知道如何改变这个。我查看了参考资料,并寻找了实际指向项目所在位置的位置,但我都没有找到。请帮忙。

virtualenv virtualenvwrapper

5
推荐指数
1
解决办法
3971
查看次数

如何强制'mkproject'(virtualenvwrapper)使用python3作为默认值?

我已经将以下行添加到我的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 virtualenv virtualenvwrapper python-2.7 python-3.x

5
推荐指数
1
解决办法
1992
查看次数

我如何告诉 mkvirtualenv 我想使用哪个版本的 Python?

我对使用时安装的 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?

virtualenv virtualenvwrapper python-2.7

5
推荐指数
1
解决办法
4248
查看次数

在 MacOS 上为 Python 3.6 初始化 virtualenvwrapper

我想在 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)

python macos virtualenv virtualenvwrapper

5
推荐指数
1
解决办法
2905
查看次数

mkvirtualenv 在 Raspbian Buster 上为非默认 python 创建 venv 时说“没有名为 distutils.spawn 的模块”

Raspbian Buster 默认使用 Python3.7。我正在尝试制作一个 Python3.6 virtualenv。我全新安装了带有桌面的 Raspbian Buster(不是带有“推荐软件”的版本)并且已经安装了sudo apt-get update; sudo apt-get upgrade

  1. 我已经运行sudo apt-get install python3.6-dev以获得 Python 3.6。
  2. 然后我运行pip3 install virtualenvwrapper并将适当的行添加到我的 .bashrc 中。
  3. 当我运行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

5
推荐指数
2
解决办法
1566
查看次数