我在Ubuntu 12.04上安装了Virtualenv,并使用它来处理统一桌面下的示例项目。我正在使用VirtualBox,并且在Unity桌面上遇到了一些问题,因此改为KDE桌面。
我现在正在尝试创建一个新项目,但virtualenv不允许我在我的项目文件夹中创建一个新环境。在终端我导航到项目文件夹,键入virtualenv venv并获取以下错误消息:
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 3, in <module>
virtualenv.main()
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 938, in main
never_download=options.never_download)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 1039, in create_environment
site_packages=site_packages, clear=clear))
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 1215, in install_python
copyfile(stdinc_dir, inc_dir)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 430, in copyfile
copyfileordir(src, dest)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 405, in copyfileordir
shutil.copytree(src, dest, True)
File "/usr/lib/python2.7/shutil.py", line 206, in copytree
raise Error, errors
shutil.Error: [('/usr/include/python2.7/numpy', 'venv/include/python2.7/numpy', '[Errno 30] Read-only file system')]
谁能帮我解决这个问题?我已经尝试重新安装virtualenv但没有快乐。谢谢
Ahti Kitsik在他的博客上发布了一个解决方法:https://ahtik.com/fixing-your-virtualbox-shared-folder-symlink-error/
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1
YOURSHAREFOLDERNAME
是VirtualBox的共享文件夹的名称。
如果你碰巧使用Vagrant,这里是你的Vagrantfile的修复程序:
config.vm.provider :virtualbox do |vb|
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant","1"]
end
我与virtualenv和VirtualBox(通过Vagrant管理)与Ubuntu来宾遇到了同样的错误。
记住以前的事件,其中文件权限导致我的问题,我尝试在我的Vagrantfile中启用nfs共享:
config.vm.share_folder("v-root", "/home/vagrant/apps", "/home/gareth/Projects/project-name/", :nfs => true)
这解决了我的问题。尽管如此,在VirtualBox上获取nfs共享的过程更为复杂:
我在github.com上看到了这个解决方案:
将virtualenv升级到最新版本(1.11.6),并将其用作
virtualenv --always-copy testenv
选项不会使用硬链接,但会复制文件