在VMWare中使用虚拟环境与共享Windows文件夹
我现在在一台Windows电脑上用VMWare运行一个Linux虚拟机。为了我的项目,我有一个共享的Windows文件夹,我在Linux里通过/mnt/hgfs/来访问这个文件夹。
当我尝试在我的Python项目中使用virtualenv时,出现了“操作不支持”的错误:
joe@myserver:/mnt/hgfs/winwww/envtest# virtualenv env
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==1.7', 'console_scripts', 'virtualenv')()
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 928, in main
never_download=options.never_download)
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1029, in create_environment
site_packages=site_packages, clear=clear))
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1164, in install_python
copyfile(join(stdlib_dir, fn), join(lib_dir, fn))
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 430, in copyfile
copyfileordir(src, dest)
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 405, in copyfileordir
shutil.copytree(src, dest, True)
File "/usr/lib/python2.6/shutil.py", line 173, in copytree
raise Error, errors
shutil.Error: [('/usr/lib/python2.6/config/libpython2.6.so', 'env/lib/python2.6/config/libpython2.6.so', '[Errno 95] Operation not supported')]
我猜这可能是因为Windows不能处理符号链接,而我可以在其他目录创建我的virtualenv。
有没有人找到在共享的Windows文件夹中让virtualenv正常工作的办法?我在Windows电脑上编辑代码,所以我才使用共享文件夹。
谢谢。
1 个回答
5
虚拟环境(virtualenv)不一定要和你的代码放在一起,所以即使你不能在共享文件夹里创建它,这也不会影响你在Windows上编辑代码和在主机平台上运行代码的能力。其实,我觉得尝试在多个平台之间共享特定平台的文件本身就是个坏主意。
这就是.pth文件的用处。如果你在项目中使用setuptools和setup.py,你可以直接运行$VENV/python setup.py develop
,这样就可以把你的项目链接到虚拟环境中,不管它放在哪里。之后你可以运行$VENV/python
,你的包就会出现在sys.path
中,可以被导入使用。