2014-04-23 9 views
6

Ich bin ein Neuling zu PyPI ... also lassen Sie mich damit qualifizieren. Ich versuche, ein Paket auf PyPI zu setzen, aber ein bisschen Mühe, wenn ich versuche, es mit pip zu installieren. Wenn ich die Datei auf PyPI laden, erhalte ich eine Warnung (aber das setup.py Script endet mit nicht schwerwiegenden Fehlern und einem 200-Status):Wie schließe ich non.py-Dateien in PyPI ein?

'my_package/static/my_folder' not a regular file -- skipping 

Und dann, wenn ich gehen, um es in pip zu installieren, erhalte ich ein Fehler:

"error: can't copy 'my_package/static/my_folder': doesn't exist or not a regular file. 

Von anderen Antworten auf SO, ich habe meine MANIFEST.in und meine setup.py Dateien versucht Wechsel auf, ohne Glück. Hier ist meine aktuelle MANIFEST.in:

recursive-include my_package *.css *.js *.jinja2 

und setup.py:

try: 
    from setuptools import setup, find_packages 
except ImportError: 
    from distutils.core import setup, find_packages 

setup(
    name='my_package', 
    packages=find_packages(), 
    include_package_data=True, 
    platforms='any', 
    version='1.0', 
    description='my_description', 
    license='MIT', 
    author='Me', 
    author_email='[email protected]', 
    install_requires=[ 
     'Flask', 
     'Jinja2', 
     'requests', 
    ], 
    url='http://www.example.com', 
    download_url='https://github.com/me/my_package/tarball/1.0', 
    classifiers=[ 
     'License :: OSI Approved :: MIT License', 
    ], 
) 

EDIT: Ich habe versucht, auch nur die MANIFEST.in Datei zu verlassen, um zu sehen, ob das etwas war vermasselt aber ich bekomme das gleiche Ergebnis.

+0

Ich habe ein einfaches Projekt mit zwei Dateien ('my_package/__ init __. Py' und' my_package/static/a.css') erstellt, und deine 'setup.py' und' MANIFEST.in' funktionieren gut. Verfügen Sie in Ihrem Manifest über zusätzliche Regeln? Wäre schön, wenn Sie ein minimales Projekt zur Verfügung stellen könnten, das das Problem reproduziert. – uranusjr

+0

@uranusjr: Das hat funktioniert. Ich habe dann das gesamte Paket auf PyPI gelöscht und ohne Probleme erneut übergeben. Muss etwas am Ende von PyPI gewesen sein. Da du das Problem effektiv gelöst hast, poste bitte deinen Kommentar als Antwort und ich akzeptiere ihn. Vielen Dank! –

Antwort

2

(Reposted aus dem Kommentar auf Anfrage.)

Ihr Setup-Skript und MANIFEST.in sollte funktionieren. Um dies zu beweisen mit einem minimalen Beispiel:

my_project/ 
    my_package/ 
     static/ 
      a.css 
     __init__.py 
    MANIFEST.in 
    setup.py 

Run python setup.py sdist und Sie werden feststellen, dass sowohl static/a.css und __init__.py im tar.gz Paket gebündelt sind.