distutils“不是常规文件 - skipped”

时间:2010-12-09 23:38:21

标签: python installation distutils

我的设置非常简单:

   
from distutils.core import setup

setup(name='myscripts',
      description='my scripts',
      author='Ago',
      author_email='blah',
      version='0.1',
      packages=['myscripts']
      )

myscripts文件夹包含大约10个python文件。如果我只执行我的main.py文件(可执行文件,它使用那些myscripts文件),Everthing工作正常。现在我尝试做: python setup.py sdist

但我明白了:

running sdist
warning: sdist: missing required meta-data: url
reading manifest file 'MANIFEST'
creating myscripts-0.1
making hard links in myscripts-0.1...
'file1.py' not a regular file -- skipping
hard linking setup.py -> myscripts-0.1
'file2.py' not a regular file -- skipping
tar -cf dist/myscripts-0.1.tar myscripts-0.1
gzip -f9 dist/myscripts-0.1.tar
removing 'myscripts-0.1' (and everything under it)

文件file1.pyfile2.py与其他文件一样常规。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

(已经工作,作为正确答案重新发布):

尝试删除“MANIFEST”文件并重新运行它。如果您移动了文件,那么MANIFEST可能是错误的(如果不存在则自动重新生成)。

答案 1 :(得分:1)

注意:我是setup.py,sdist等的新手,正在通过练习46“艰难地学习python” - >所以我还不知道我在做什么:) http://learnpythonthehardway.org/

我发现了这个问题,因为我在尝试包含脚本时收到了同样的错误。无论出于何种原因,我没有“清单”文件(我可以找到) - 也许我正在使用不同的distutils版本?我用pip来安装“发布”。

我的解决方案是使用脚本名称包含扩展名“* .py”。为:

...
'scripts': ['bin/testscript.py'],
...

在关注http://docs.python.org/distutils/setupscript.html#installing-scripts之后,似乎我不应该包含扩展名。所以,我不确定这里有什么,但它现在对我有用,并且“不是常规文件 - 跳过”错误消失了。

这解决了我的问题。你可以在https://github.com/stevekochscience/Test-python-package-with-script-LPTHW-EX46找到我的新手代码 README文件解释了我为测试包和测试脚本所做的工作。希望这有助于其他新手偶然发现这个问题!

答案 2 :(得分:0)

在我的情况下,这个错误是由于使用Python 2.7而不是Python 3无意中运行distutils引起的。快速修复:

python3 setup.py register sdist upload

更好的是,正确标记脚本:

sed -i '1i #!/usr/bin/python3' setup.py