使用不同的python安装virtualenv时断言错误

时间:2011-02-15 00:55:38

标签: python virtualenv

我的服务器有Python2.5我想跳到最新的Python(在我的情况下是2.7.x)。我从源代码编译python,我下载了最新的virtualenv(1.5.1)。

现在基本上我想做的事情:

./packages/virtualenv/virtualenv.py --python=packages/Python-2.7/python env/

打字:

./packages/virtualenv/virtualenv.py

提供:

1.5.1

打字时:

packages/Python-2.7/python

提供:

Python 2.7 (r27:82500, Nov 21 2010, 23:19:15) 
[GCC 4.3.2] on linux2
(cut help mesage)
>>>

然而,运行virutalenv导致:

AssertionError:文件名/packages/Python-2.7/Lib/os.py不以任何这些前缀开头:['/ usr / local']

无论它意味着什么,无论我是什么,或者我没有做错。

P.S。 在构建env + python时,我的问题是:How do I work around this problem creating a virtualenv environment with a custom-build Python?

3 个答案:

答案 0 :(得分:51)

阅读并弄乱this

我发现在为python运行--prefix时,此错误可能与缺少./configure有关。所以我运行了./configure --prefix=/Path/To/Where/I/Want/Python/After/Compilation/(在我的情况下是$HOME/packages/Python-2.7),然后我输入了make,然后是make install(不使用sudo - 所以python是安全地进入我告诉它作为当前用户不是 root 的地方。之后,virtualenv启动并没有与AssertionError崩溃,一切都像魅力一样。

希望作者回答这个问题最终会帮助某人。 :)

答案 1 :(得分:18)

我没有足够的代表将此添加为评论,此问题已有3年,但这可能对某人有用。在Windows中,你必须走出 python.exe ,但似乎在Linux / OS X中你只是路径到该文件夹​​。例如:

<强>窗:

virtualenv -p <PATH TO PYTHON.EXE> venv

在当前目录中的子文件夹“venv”中创建虚拟环境。

答案 2 :(得分:1)

我没有足够的代表来添加评论。 Mike's回答拯救我的一天。我正在使用Windows。

我收到了错误:

AssertionError: Filename C:\Python35\Lib\os.py does not start with any of these prefixes: ['c:\\python35', 'c:\\python35']

我必须运行这个 -

virtualenv -p C:\Python35\python.exe venv

还需要从以管理员身份打开的cmd运行此命令。否则会收到错误

PermissionError: [WinError 5] Access is denied

如果有足够的销售代表发表评论,请将其添加到Mike's答案作为评论。然后我会清除我的。