首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Virtualenv不创建环境

Virtualenv不创建环境
EN

Stack Overflow用户
提问于 2012-06-29 23:56:43
回答 5查看 9.7K关注 0票数 16

我在Ubuntu 12.04上安装了Virtualenv,并使用它在unity桌面下的一个示例项目上工作。我使用的是VirtualBox,在unity桌面上遇到了一些问题,所以换成了KDE桌面。

我现在正在尝试创建一个新项目,但是virtualenv不允许我在我的项目文件夹中创建一个新环境。在终端中,我导航到项目文件夹,输入virtualenv venv,并得到以下错误消息:

代码语言:javascript
运行
复制
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,但没有重装joy。谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-30 00:35:53

好的,经过更深入的谷歌搜索发现,这是一个VirtualBox的问题,而不是Ubuntu的问题。共享文件夹不受此活动的影响。我不知道它第一次是如何/为什么工作的,但它是一个已知的bug。我在共享文件夹之外创建了一个项目,没有任何问题。谢谢你的意见,杜格尔。

票数 11
EN

Stack Overflow用户

发布于 2014-06-23 00:53:24

Virtualenv使用符号链接(shutil.copytree使用它们,请参阅回溯)。已禁用在VirtualBox共享文件夹中创建符号链接。在终端(客户机内)进行简单测试:

代码语言:javascript
运行
复制
$ ln -s testfile

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

您可以通过在主机上的终端中执行以下命令来启用共享文件夹中的符号链接(solution from schisamo):

代码语言:javascript
运行
复制
$ vboxmanage setextradata VM_NAME "VBoxInternal2/SharedFoldersEnableSymlinksCreate/NAME_OF_YOUR_SHARED_FOLDER" 1

将VM_NAME替换为虚拟机的名称,如VirtualBox管理器中所示:

和带有共享文件夹名称的NAME_OF_YOUR_SHARED_FOLDER,您可以在虚拟机的设置中看到:

设置完成后,重新启动VirtualBox。

您可以使用以下命令检查(主机上的)设置

代码语言:javascript
运行
复制
$ 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共享文件夹还支持符号链接(也称为符号链接):

  • 主机操作系统必须支持symlinks。例如,Mac、Linux或Oracle Solaris主机仅支持required.
  • Currently Linux和Oracle Solaris Guest Additions支持symlinks.
  • For安全,因为默认情况下不允许来宾操作系统创建符号链接。如果您相信来宾操作系统不会滥用此功能,则可以启用为共享文件夹创建符号链接,如下所示请参阅上面的
票数 15
EN

Stack Overflow用户

发布于 2014-01-30 15:43:40

Ahti Kitsik在他的博客上发布了一个解决方法:https://ahtik.com/fixing-your-virtualbox-shared-folder-symlink-error/

代码语言:javascript
运行
复制
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1

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

如果你碰巧在使用Vagrant,这里是你的Vagrantfile的修复:

代码语言:javascript
运行
复制
config.vm.provider :virtualbox do |vb|
  vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant","1"]
end
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11265091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档