rla*_*yte 17 python unix ubuntu virtualbox distutils
我正在尝试创建一个python源包,但在创建文件的硬链接时失败了.
$ python setup.py sdist
running sdist
running check
reading manifest template 'MANIFEST.in'
writing manifest file 'MANIFEST'
making hard links in foo-0.1...
hard linking README.txt -> foo-0.1
error: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我试过用sudo运行命令,但它会产生同样的错误.
这也会产生同样的错误:
ln foo bar
Run Code Online (Sandbox Code Playgroud)
我正在使用vbox运行ubuntu的虚拟实例,这可能是问题的来源.在创建源代码分发时,是否有使用硬链接的方法?
系统信息:
Ubuntu服务器11.04; VirtualBox 4.14; osx 10.6.6; python 2.7.1;
Leo*_*o.Z 17
同样的问题.我使用的是vagrant,我的主机操作系统是Windows,而Gust OS是Ubuntu.我不是vim粉丝,所以@ simo的答案对我没什么帮助,因为我真的依赖虚拟盒共享文件夹来将sublime编辑器所做的更改同步到Ubuntu虚拟机.
感谢Fabian Kochem,他找到了一个快速而肮脏的解决方法:帖子
# if you are not using vagrant, just delete os.link directly,
# The hard link only saves a little disk space, so you should not care
if os.environ.get('USER','') == 'vagrant':
del os.link
Run Code Online (Sandbox Code Playgroud)
小智 16
我遇到了同样的问题.通过将python源从虚拟盒共享文件夹移动到我的debian主文件夹,我能够使它工作.sdist上没有错误了.
我希望它有所帮助.
从你的问题不清楚哪一步失败了.可能是错误之前的硬链接.您可以尝试strace以查看哪些系统调用失败.这应该至少可以更好地描述问题.
这个python bug报告看起来好像他们不会在distutils2之前解决这个问题.有人提供了可能对您有用的补丁.您也可以通过NFS挂载目录并在那里构建.我相信NFS允许硬链接.
看起来这是在Python 2.7.9版本中修复的 - https://hg.python.org/cpython/raw-file/v2.7.9/Misc/NEWS
Issue #8876: distutils now falls back to copying files when hard linking
doesn't work. This allows use with special filesystems such as VirtualBox
shared folders