2011-05-05 53 views
40

我已经通过pip安装virtualenv并创建一个新环境之后得到这个错误在Mac OS X的virtualenv:问题与

selenium:~ auser$ virtualenv new 
New python executable in new/bin/python 
ERROR: The executable new/bin/python is not functioning 
ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/ Versions/2.6' (should be '/Users/user/new') 
ERROR: virtualenv is not compatible with this system or executable 

在我的环境:

PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages 
PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

我怎样才能修复这个?

谢谢。

+0

我通过自制软件安装Python和改变路径到/ usr/local/lib复制python,现在所有工作,thx全部:) – gigimon 2011-05-06 22:45:35

回答

1

如果仍然无法与virtualenv,你可以尝试改为pythonbrew。这是同样问题的替代解决方案。它更像Ruby的rvm:它在$HOME/.pythonbrew的基础上构建和创建了一个完整的Python实例,然后设置了一些bash函数,使您可以在各个版本之间轻松切换。其中virtualenv影响系统版本的Python,使用符号链接作为其解决方案的一部分,pythonbrew构建完全自包含的Python安装。

我使用了virtualenv多年。这是一个不错的解决方案,但我最近已切换到pythonbrew。拥有完全自包含的Python实例意味着安装一个新实例需要一段时间(因为pythonbrew实际上是从头开始编译Python的),但是每个安装的独立性吸引了我。而且磁盘很便宜。

+0

THX,我尝试使用pythonbew,但后来:) – gigimon 2011-05-06 21:34:43

+0

什么pythonbrew和VIRTUALENV之间的区别?为什么当我使用pythonbrew时,我仍然需要使用virtualenv来创建独立的env?我在这里问了一个问题http://stackoverflow.com/questions/8256723/python-whats-the-difference-between-pythonbrew-and-virtualenv – Jeff 2011-11-25 06:42:54

+0

Jeff,我对你提到的问题加了一个答案。请参阅http://stackoverflow.com/a/8348440/53495 – 2011-12-01 21:20:05

4

我已经自己解决了这个问题。我写下的自述文件的说明,我已经粘贴下面....

我发现有一些工作的两件事情:

  1. 确保您运行的是最新的virtualenv(1.5。 1,本文写作)
  2. 如果你使用非系统Python作为你的标准Python(需要检查python)强制使用System提供的一个。

    代替virtualenv thing使用/usr/bin/python2.6 PATH/TO/VIRTUALENV thing(或任何which python还给你 - 这是它为我做的,当我遇到了这个问题)

+0

不明白,什么是bootstrap.py?我使用系统Python:哪个python /系统/库/框架/ Python的框架/版本/ 2.6/bin/python – gigimon 2011-05-06 21:33:42

+0

你是对的,这是没有意义的。固定 – RyanWilcox 2011-05-06 22:44:56

+0

这解决了我的问题:只需要一个更新的virtualenv。 – 2013-06-26 23:47:26

3

我遇到了同样的问题,而且现在我看到它,这是由Python安装造成的。自从我购买新笔记本电脑以来,我已经安装了OS X一年多了,并且我已经使用不同来源(官方二进制文件,自制软件,官方二进制文件+手工调整here)安装并重新安装了Python数次。不要问我为什么这么做,我只是一个悲惨的新手,相信所有事情都会在重新安装后自行修复。

因此,我在这里和那里安装了许多不同的Pythons,以及许多指向它们的硬连接不一致。最终我厌倦了所有这些,并且重新安装了OS X仔细清理了我使用find实用工具发现的所有Pythons系统。另外,我没有链接指向任何来自任何地方的Python的所有链接。然后,我安装了一个使用自制软件的新Python,安装了virtualenv,现在所有东西都可以用作魅力。

所以,我的食谱是:

sudo find/-iname "python*" > python.log

然后分析该文件,删除及取消有关Python的你所需要的版本的一切,重新安装(我用自制干的,也许官方的安装会也工作)和享受。请确保您取消链接与/usr/bin/usr/local/bin之间的所有python相关的链接,并删除/Library/System/Library中的所有Frameworks/Python.framework/Versions/<Your.Version>实例。

它可能是一个肮脏的黑客攻击,但它为我工作。我不想保留除pipvirtualenv之外的任何系统范围的Python库,并为我的所有项目创建虚拟环境,因此我不关心删除重要的库。如果你不想删除所有东西,还是试着了解你的Pythons是否是,指向他们的链接以及从哪里链接的链接。然后考虑可能导致问题并修复的问题。

0

关于OSX 10.6.8 leopard,在“升级”到Lion之后,再次降级(几个月前我经历了Wolf Paulus方法,完全不了解python)。完全删除python 2.7,并用3.something“替换”它。我的FTP程序停止工作(Fetch),谁知道还有什么依赖于Python 2.7。所以那时我从python.org下载了最新版本的2.7,它的安装程序让我启动并运行 - 直到我试图使用virtualenv

什么似乎已经为我工作的这段时间完全被删除的Python 2.7,此代码:

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7 

删除所有链接,此代码:

sudo rm /usr/bin/pydoc 
sudo rm /usr/bin/python 
sudo rm /usr/bin/pythonw 
sudo rm /usr/bin/python-config 

我曾试图安装Python与homebrew,但显然它不会工作,除非所有的XTools安装,我一直避免,因为XTools与10.6兼容的版本是古老的和4GB,大多数我需要的是GCC,编译器,你可以ge t here

所以我刚刚安装了最新的python.org下载。

然后必须重新安装easy_install,pip,virtualenv。

肯定想知道什么时候可以购买新笔记本电脑,但是购买更少的硬件(奴隶劳动,不道德的采矿等)还有很多需要说明的地方。

5

像@RyanWilcox提到的那样,您可能会无意中将virtualenv指向错误的Python安装。 Virtualenv附带-p标志,让您指定使用哪个解释器。

在我的情况下,

virtualenv test_env 

扔了同样的错误是你的,而

virtualenv -p python test_env 

完美工作。

如果您致电virtualenv -h-p标志的文档将告诉您它认为应该使用哪个python;如果它看起来不可靠,请尝试通过-p python。作为参考,我在virtualenv 1.11.6。

1

我碰到了这个“不能正常工作”的错误的变化。 我试图创建一个包含路径“.../Programming/Developing ...”的文件夹中的环境,它实际上是“/ Users/eric/Documents/Programming:Developing /”

并且得到了这个错误:

ImportError: No module named site 
ERROR: The executable env/bin/python2.7 is not functioning 
ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env') 
ERROR: virtualenv is not compatible with this system or executable 

我尝试在不同的文件夹相同的,它工作得很好,没有任何错误和env/bin中有我期望(激活等)。

+0

我遇到了同样的错误。你找到解决方案吗? – KartikKannapur 2016-07-16 11:45:47

+0

我刚刚得到这个错误!似乎没有解决方案。我正在使用anaconda,你们是否使用系统python或anaconda? – 2017-01-28 19:50:01

1

上述方案失败对我来说,但以下工作:

python3 -m venv --without-pip <ENVIRONMENT_NAME> 
. <ENVIRONMENT_NAME>/bin/activate 
curl https://bootstrap.pypa.io/get-pip.py | python 
deactivate 

这是哈克,但肯定的,核心的问题确实只是似乎是点子。

6

如果将来遇到任何人遇到这个问题 - 这是由于您的默认Python发行版为conda引起的。康达有它自己的虚拟ENV set up process但是如果你有蟒蛇的畅达分布,仍然希望在这里使用的virtualenv是如何:

  1. 找到你的机器上的其他蟒蛇分布:ls -ls /usr/bin/python*

  2. 注意到在availble的Python版本是不畅达,并运行下面的代码(注意,蟒蛇3,你要不断升级的virtualenv在前):virtualenv -p python2.7(or your python version) flaskapp

0

我做后续荷兰国际集团步骤获得的virtualenv工作:

更新的virtualenv如下:

==> sudo pip install --upgrade virtualenv 

初始化python3的virtualenv:

==> virtualenv -p python3 venv 
101

以防万一有一个人仍然在寻求答案。

我今天遇到了同样的问题,因为我已经安装了Anaconda,所以我不应该使用pip install virtualenv来安装虚拟环境,因为这会在稍后尝试启动时给我错误消息。相反,我试图conda install virtualenv然后输入virtualenv env_mysite和问题解决。

+10

我也安装了anaconda。我从pip卸载并安装了conda: pip卸载virtualenv - conda安装virtualenv - virtualenv my_project – Chris 2017-03-13 01:58:16

+0

工作就像一个魅力。谢谢你,先生! – agentcurry 2017-06-23 14:48:59

+0

保存了我的一天。谢谢wastetime909 – Asanka 2017-09-03 04:22:39

0

打开终端和类型/Library/Frameworks/Python.framework/Versions/

然后键入ls /Library/Frameworks/Python.framework/Versions/2.7/bin/ 如果正在使用Python2(或任何其它人)。

编辑〜/。.bash_profile中,并添加以下行: export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

cat ~/.bash_profile

在我的情况在〜/ .bash_profile的内容如下:

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

现在的virtualenv命令应该工作。

0

我有同样的问题,我可以证实,问题出在一个过时的virtualenv.py文件。

这是没有必要做一个整体安装--upgrade

与最新版本的更换virtualenv.py文件就够了。

0

我也有这个问题,我尝试以下方法,为我工作:

conda install virtualenv 

virtualenv --system-site-packages /anaconda/envs/tensorflow(这里envs使所有用户所做的虚拟环境)

source /anaconda/envs/tensorflow/bin/activate 

希望它的很有帮助。

1

我得到了同样的问题,我发现,当你没有正确指定的Python可执行文件的名称它发生。因此,对于蟒蛇2倍,例如:

virtualenv --system-site-packages -p python mysite

但是对于蟒蛇3.6,你需要指定一个像python3.6可执行文件名

virtualenv --system-site-packages -p python3.6 mysite