python - Virtualenv没有创造环境

原文 标签 python virtualenv virtualbox symlink shared-directory

我在Ubuntu12.04上安装了virtualenv,并使用它在Unity桌面下的一个示例项目上工作。我使用的是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,但没有乐趣。谢谢

最佳答案

virtualenv正在使用符号链接(shutil.copytree使用符号链接,请参见回溯)。禁用在virtualbox共享文件夹中创建符号链接。终端中的简单测试(在客户机内):

$ ln -s testfile

您将得到一个failed to create symbolic link './testfile': Read-only file systemProtocol error
通过在主机(solution from schisamo)上的终端中执行,可以启用共享文件夹中的符号链接:
$ vboxmanage setextradata VM_NAME "VBoxInternal2/SharedFoldersEnableSymlinksCreate/NAME_OF_YOUR_SHARED_FOLDER" 1

将vm_name替换为虚拟机的名称,如virtualbox管理器中所示:
并将共享文件夹的名称命名为“您的共享文件夹”,您可以在虚拟机的设置中看到该共享文件夹的名称:
设置完成后,重新启动virtualbox。
您可以使用
$ vboxmanage getextradata VM_NAME enumerate

Fix for Windows (Ahti Kitsik)(多亏了Bryan's answer)。
virtualbox为共享文件夹since version 4.0 (for Linux and Solaris)实现了符号链接,但出于安全原因,它们是disabled since version 4.1.8的。这可能是它最初为你工作,后来却不工作的原因。
Documentation
virtualbox共享文件夹还支持符号链接
在以下条件下称为符号链接:
主机操作系统必须支持符号链接。例如,需要Mac OS X、Linux或Oracle Solaris主机。
目前只有Linux和Oracle Solaris来宾添加支持符号链接。
出于安全原因,默认情况下不允许来宾操作系统创建符号链接。如果您相信来宾操作系统不会滥用该功能,则可以按如下方式为共享文件夹创建符号链接[参见上文]

相关文章:

python - 如何修复迭代期间字典更改的大小:pygame雷达

django - 在EC2上的Virtualenv中运行Django — ImportError:没有名为django.core.management的模块

python - 带有--always-copy的virtualenv引发错误“不允许操作”

virtual-machine - 流浪汉:无法从主机ping来宾计算机

python - Python中是否有像这样的模式匹配功能?

python - 如何将cv2直方图保存到Python中的文件?

windows - Laravel Homestead:在Windows 8上置备失败

linux - 具有kickstart的centOS7 netinstall无法获取安装源

python - 什么时候使用Google的MapReduce

python - Django VirtualEnv设置-'setuptools pip wheel失败,错误代码为-11'