2014-04-23 16 views
6

Jestem nowym użytkownikiem PyPI ... więc pozwól mi się zakwalifikować. Próbuję umieścić pakiet na PyPI, ale mając trochę problemów, gdy próbuję zainstalować go z pip. Kiedy mogę przesłać plik do PyPI, otrzymuję ostrzeżenie (ale setup.py skrypt kończy się nie śmiertelnych błędów i statusu 200):Jak dołączyć niepoprawne pliki do PyPI?

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

A potem, kiedy idę, aby go zainstalować w pip, otrzymuję błąd:

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

z innych odpowiedzi na SO, próbowałem zmieniając moją MANIFEST.in i moje setup.py plików, bez powodzenia. Oto mój obecny MANIFEST.in:

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

i 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: Próbowałem zostały również pomijając plik MANIFEST.in tylko aby sprawdzić, czy nic się było bawić ale otrzymuję ten sam rezultat.

+0

Po prostu zbudowałem prosty projekt z dwoma plikami ('my_package/__ init __. Py' oraz' my_package/static/a.css'), a twoje ustawienia "setup.py" i 'MANIFEST.in' działają poprawnie. Czy posiadasz dodatkowe reguły w swoim manifeście? Byłoby miło, gdybyś mógł przedstawić minimalny projekt, który odwzorowuje problem. – uranusjr

+0

@uranusjr: To zadziałało. Następnie usunąłem cały pakiet na PyPI i ponownie przesłałem bez żadnych problemów. To musiało być coś na końcu PyPI. Ponieważ skutecznie rozwiązałeś problem, opublikuj swój komentarz jako odpowiedź, a ja to zaakceptuję. Dzięki! –

Odpowiedz

2

(Reposted z komentarzem na życzenie).

Twój skrypt instalacyjny i MANIFEST.in powinno działać. Aby udowodnić to przy minimalnym przykład:

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

Uruchom python setup.py sdist a przekonasz się, że zarówno static/a.css i __init__.py są dołączone do opakowania tar.gz.

Powiązane problemy