我已经使用Macports在我的Mac上安装了不同版本的python。当我通过$ port select python python27
选择Python2.7时,virtualenvwrapper工作得很好。
但是如果我选择python的另一个版本,也就是2.6,virtualenvwrapper.hook_loader会生成一条错误消息: ImportError: No module named python
我检查了我的.profile,它将VIRTUALENVWRAPPER_PYTHON
设置为/opt/local/bin/python
,所以在我看来,无论我选择哪种python,virtualenvwrapper都应该可以工作。
当我切换python版本时,你知道是什么原因导致virtualenvwrapper生成.hook_loader错误吗?
发布于 2019-05-03 22:49:09
您可以显式选择python版本
mkvirtualenv -p python3 venvname
或
mkvirtualenv -p python2.7 venvname
发布于 2016-11-11 05:25:43
这些都不管用。我在设置我的osx机器时首先安装了Python3,pip和所有的默认设置都是这样。
首先,检查您安装的是哪种python:
$ `which python` -V
如果返回"Python 2.7.12",则设置为运行:
$ mkvirtualenv -p `which python` api_server
Running virtualenv with interpreter /usr/local/bin/python
New python executable in /Users/eric/.virtualenvs/api_server/bin/python2.7
Also creating executable in /Users/eric/.virtualenvs/api_server/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/get_env_details
这还将激活api_server
工作区,这将更改您的python可执行文件:
$ which python
/Users/eric/.virtualenvs/api_server/bin/python
$ python -V
Python 2.7.12
which python
实际上是做什么的?它输出在PATH中找到的python可执行文件的目录:
$ which python
/usr/local/bin/python
通过使用which python
,您基本上是将/usr/local/bin/python
传递给mkvirtualenv目录中的-p
选项。
当which python
中返回多个python可执行文件时,会发生什么情况?只需找到你想要的,并传递给它:
$ mkvirtualenv -p /usr/local/bin/python3 api_server
而virtualenvwrapper最终将使用该python可执行文件。
发布于 2016-08-08 23:07:28
已确认使用了两个名称相似的环境变量:
VIRTUALENVWRAPPER_PYTHON
-- virtualenvwrapper实用程序本身使用哪个Python版本。换句话说,哪个版本的Python执行virtualenvwrapper
,就好像该Python版本已经在virtualenvwrapper脚本文件的#!
行中显式命名一样。
Python --当您创建一个新的虚拟环境时,virtualenv
将安装哪个VIRTUALENV_PYTHON
版本。相当于virtualenv
命令行上的-p / --python
选项。
可能很明显:)在虚拟环境中运行的Python版本就是您为该环境安装的版本--在创建env之后与上面的环境变量无关。
有关如何在virtualenv中升级https://stackoverflow.com/a/24724360/763269,请参阅Python。
https://stackoverflow.com/questions/6401951
复制相似问题