Virtualenv失败,出现“不以前缀开头”

2024-04-26 23:31:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚从github下载了python3.6.1,并在本地目录中构建了它。现在我正试图用这个版本的python制作一个virtualenv,但是我一直得到:

Running virtualenv with interpreter /home/giorgio/tools/cpython-3.6.1/python
Using base prefix '/usr/local'
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 2462, in <module>
    main()
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 762, in main
    symlink=options.symlink,
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 998, in create_environment
    install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1219, in install_python
    copy_required_modules(home_dir, symlink)
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1147, in copy_required_modules
    dst_filename = change_prefix(filename, dst_prefix)
  File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1111, in change_prefix
    assert False, "Filename {} does not start with any of these prefixes: {}".format(filename, prefixes)
AssertionError: Filename /home/giorgio/tools/cpython-3.6.1/Lib/os.py does not start with any of these prefixes: ['/usr/local', '/usr/local']

我不想在系统上全局安装这个版本的python。有没有其他方法可以让virtualenv使用它?在


Tags: inpyhomeprefixvirtualenvlibpackagesusr
2条回答

正确的方法是在将构建选项配置为本地目录时设置前缀,然后执行make install。因此,如果您要安装的目录是$HOME/pythons,那么在构建目录中运行:

./configure  prefix="${HOME}/pythons"
make
make install

我认为Python3.6引入了一种新的创建虚拟环境的方法,它不依赖于通过usr/local进行路由。在

python3 -m venv /path/to/new/virtual/environment

Here是文档。在

相关问题 更多 >