【发布时间】:2016-03-29 10:38:47
【问题描述】:
我试图用 python3 在我的 vagrant centos7 上创建一个 virtualenv,然后发生了以下情况。我能用它做些什么吗? virtualenv 的版本是 13.1.2,python 是 3.5.1。谢谢。
$ virtualenv -p python3 venv
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local'
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 2363, in <module>
main()
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 832, in main
symlink=options.symlink)
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 994, in create_environment
site_packages=site_packages, clear=clear, symlink=symlink))
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 1192, in install_python
copy_required_modules(home_dir, symlink)
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 1131, in copy_required_modules
copyfile(filename, dst_filename, symlink)
File "/usr/local/lib/python3.5/site-packages/virtualenv.py", line 468, in copyfile
os.makedirs(os.path.dirname(dest))
File "/usr/local/lib/python3.5/os.py", line 241, in makedirs
mkdir(name, mode)
FileExistsError: [Errno 17] File exists: 'venv/lib/python3.5/lib-dynload'
【问题讨论】:
-
看起来您在该目录中已经有一个(可能损坏的)virtualenv
venv,并且默认情况下 virtualenv 不会覆盖现有文件。尝试删除它 (rm -rf venv) 并再次运行创建命令,或使用--clear开关进行 virtualenv。 -
我尝试删除并创建了几次 venv,但即使使用 --clear 仍然无法正常工作。有什么办法可以修复损坏的 virtualenv 吗?我尝试使用 pip 重新安装它,但也无法正常工作。或者我应该重新安装整个 centos 以节省时间。
-
如果您尝试在同步文件夹中创建 virtualenv,则可能是符号链接未正确创建的问题,如this 问题。
-
是的,如果不在共享文件夹中,它也可以正常工作。即使它是完美的解决方案,我也只会在共享文件夹之外构建 venv。但是,我在尝试安装 djangocms-installer 时发现了另一个问题(必须安装 setuptools 才能从源代码分发版安装),但这是一个不同的问题,所以我认为这个问题已经解决。谢谢。
标签: python python-3.x centos virtualenv