VIRTUALENV不创造一种环境(Virtualenv not creating an envir

2019-07-30 04:09发布

我在Ubuntu 12.04安装VIRTUALENV,并用它来在统一桌面下的样本项目。 我使用VirtualBox和在和这么改到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但没有喜悦。 谢谢

Answer 1:

VIRTUALENV使用符号链接( shutil.copytree使用它们,见回溯)。 创建在VirtualBox中共享文件夹的符号链接被禁用。 在终端简单的测试(客户机内侧):

$ ln -s testfile

要么你会得到一个failed to create symbolic link './testfile': Read-only file systemProtocol error

可以通过在主机上在终端中执行(允许在共享文件夹的符号链接从schisamo溶液 ):

$ vboxmanage setextradata VM_NAME "VBoxInternal2/SharedFoldersEnableSymlinksCreate/NAME_OF_YOUR_SHARED_FOLDER" 1

与虚拟机的名称替换VM_NAME,如在VirtualBox的经理看到:

和NAME_OF_YOUR_SHARED_FOLDER与共享文件夹,你可以在虚拟机的设置,请参见名称:

设置后,重新启动VirtualBox的。

您可以检查设置( 在主机上 )与

$ vboxmanage getextradata VM_NAME enumerate

修复的Windows(阿赫蒂Kitsik) (感谢布赖恩的答案 )。


VirtualBox的实施为共享文件夹的符号链接,因为4.0版本(Linux和Solaris) ,但自从4.1.8版本禁用出于安全原因。 这可能就是为什么它首先为你工作,后来不是这个原因。

文档 :

VirtualBox的共享文件夹还支持符号链接,也叫符号链接,在下列条件下:

  • 主机操作系统必须支持符号链接 。 例如,需要在Mac OS X操作系统,Linux或Oracle Solaris主机。
  • 目前仅适用于Linux和Oracle Solaris客户添置支持符号链接。
  • 出于安全原因,来宾操作系统是不允许在默认情况下创建符号链接。 如果您信任的客户机操作系统不滥用功能,您可以启用符号链接的创建共享文件夹如下[见上]


Answer 2:

确定后,多一点深入谷歌上搜索发现,这是一个VirtualBox的问题,而不是一个Ubuntu的问题。 该共享文件夹保护,不受此活动。 我不知道如何/为什么它的工作轮的第一次,但它是一个已知的bug。 我创建了一个项目,没有问题共享文件夹的外面。 感谢您的输入杜格尔。



Answer 3:

阿赫蒂Kitsik贴在自己的博客解决方法: https://ahtik.com/fixing-your-virtualbox-shared-folder-symlink-error/

VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1

YOURSHAREFOLDERNAME是根据VirtualBox的所述共享文件夹的名称。

如果你碰巧使用放浪,这里是为您Vagrantfile修复:

config.vm.provider :virtualbox do |vb|
  vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant","1"]
end


Answer 4:

我遇到了Ubuntu客户的virtualenv和VirtualBox的(通过流浪管理)这个确切的同样的错误。

记住以前的事件,其中文件的权限引起了我我试着在NFS在我Vagrantfile共享转向的问题:

config.vm.share_folder("v-root", "/home/vagrant/apps", "/home/gareth/Projects/project-name/", :nfs => true)

这解决了这个问题对我来说。 为获得NFS共享上VirtualBox的过程是一个涉及多一点,但:

https://www.virtualbox.org/wiki/Sharing_files_on_OSE



Answer 5:

我看到这个解决方案github.com :

升级的virtualenv到最新版本(1.11.6),并把它作为

 virtualenv --always-copy testenv 

该选项将不使用硬链接,但复制文件



文章来源: Virtualenv not creating an environment