我的服务器有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?
答案 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答案作为评论。然后我会清除我的。