我正在尝试创建一个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
我尝试使用sudo运行该命令,但它产生了相同的错误。
这也会产生相同的错误:
ln foo bar
我使用vbox来运行ubuntu的一个虚拟实例,这可能就是问题的来源。在创建源码发行版时,有没有使用硬链接的方法?
系统信息:
Ubuntu服务器11.04;VirtualBox 4.14;osx 10.6.6;python 2.7.1;
发布于 2011-10-11 07:00:43
从你的问题中还不清楚哪一步是失败的。可能是错误之前的硬链接。您可以尝试strace来查看哪个系统调用失败。这至少应该能更好地描述这个问题。
在distutils2之前,This python bug report看起来不会解决这个问题。确实有人提供了一个可能对您有用的补丁。您还可以通过NFS挂载一个目录并在其中进行构建。我相信NFS允许硬链接。
发布于 2014-03-03 20:42:02
同样的问题。我使用的是vagrant,我的主机操作系统是Windows,而Gust操作系统是Ubuntu。我不是vim的粉丝,所以@simo的回答对我帮助不大,因为我真的依靠虚拟盒子共享文件夹将sublime编辑器所做的更改同步到Ubuntu虚拟机。
多亏了Fabian Kochem,他找到了一个快速而棘手的解决方法:post
# 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
发布于 2012-01-15 23:34:41
我遇到了同样的问题。通过将python源代码从虚拟盒子共享文件夹移动到我的debian主文件夹,我能够让它正常工作。sdist上不再有错误。
我希望它能帮上忙。
https://stackoverflow.com/questions/7719380
复制相似问题