distutils "не обычный файл - пропущен" - PullRequest
4 голосов
/ 10 декабря 2010

У меня очень простая настройка:

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 файлы). Сейчас я пытаюсь сделать: 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.py и file2.py такие же обычные, как и другие файлы. Есть предложения?

Ответы [ 3 ]

5 голосов
/ 10 декабря 2010

(уже сработало, перепечатка как правильный ответ):

Попробуйте удалить файл «МАНИФЕСТ» и запустить его заново.Если вы переместили файлы, MANIFEST может быть неправильным (он автоматически восстанавливается, если его там нет).

1 голос
/ 29 июля 2012

ПРИМЕЧАНИЕ. Я новичок в 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 объясняет, что я сделал, чтобы протестировать пакет вместе со сценарием тестирования.Надеюсь, что это поможет другим новичкам, которые сталкиваются с этим вопросом!

0 голосов
/ 06 апреля 2016

В моем случае эта ошибка была вызвана непреднамеренным запуском distutils с Python 2.7 вместо Python 3. Быстрое исправление:

python3 setup.py register sdist upload

Еще лучше, отметьте скрипт правильно:

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

...