PyPI download stopped working

Last night I presented my first PyPI project, and everything does not work as expected (warning long message ahead) ...

I initially downloaded the cvrfparse project via the command line by doing:

% python setup.py sdist upload 

This created an initial project. However, an attempt to install the project via pip failed:

 % sudo pip install cvrfparse Password: Downloading/unpacking cvrfparse Running setup.py egg_info for package cvrfparse Traceback (most recent call last): File "<string>", line 16, in <module> File "/private/tmp/pip-build-root/cvrfparse/setup.py", line 3, in <module> from distribute_setup import use_setuptools ImportError: No module named distribute_setup Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 16, in <module> File "/private/tmp/pip-build-root/cvrfparse/setup.py", line 3, in <module> from distribute_setup import use_setuptools ImportError: No module named distribute_setup ---------------------------------------- Command python setup.py egg_info failed with error code 1 in /private/tmp/pip-build-root/cvrfparse Storing complete log in /Users/m/Library/Logs/pip.log 

According to http://pythonhosted.org/distribute/setuptools.html#using-setuptools-without-bundling-it it should just β€œwork” if I have:

 from distribute_setup import use_setuptools use_setuptools() 

after loading into setup.py. Then I tried to add distribute_setup.py to MANIFEST.in according to:

 % cat MANIFEST.in include distribute_setup.py 

So, adding this file and typing the version number in the setup.py file, I tried to download the new package in PyPI:

 % python setup.py sdist upload running sdist running egg_info writing requirements to cvrfparse.egg-info/requires.txt writing cvrfparse.egg-info/PKG-INFO writing top-level names to cvrfparse.egg-info/top_level.txt writing dependency_links to cvrfparse.egg-info/dependency_links.txt writing entry points to cvrfparse.egg-info/entry_points.txt reading manifest file 'cvrfparse.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'cvrfparse.egg-info/SOURCES.txt' running check creating cvrfparse-0.10 creating cvrfparse-0.10/cvrfparse creating cvrfparse-0.10/cvrfparse.egg-info creating cvrfparse-0.10/cvrfparse/sample-xml creating cvrfparse-0.10/cvrfparse/schemata creating cvrfparse-0.10/cvrfparse/schemata/common creating cvrfparse-0.10/cvrfparse/schemata/common/1.1 creating cvrfparse-0.10/cvrfparse/schemata/cvrf creating cvrfparse-0.10/cvrfparse/schemata/cvrf/1.1 creating cvrfparse-0.10/cvrfparse/schemata/dublincore creating cvrfparse-0.10/cvrfparse/schemata/prod creating cvrfparse-0.10/cvrfparse/schemata/prod/1.1 creating cvrfparse-0.10/cvrfparse/schemata/scap creating cvrfparse-0.10/cvrfparse/schemata/vuln creating cvrfparse-0.10/cvrfparse/schemata/vuln/1.1 creating cvrfparse-0.10/cvrfparse/schemata/w3.org making hard links in cvrfparse-0.10... hard linking MANIFEST.in -> cvrfparse-0.10 hard linking README -> cvrfparse-0.10 hard linking distribute_setup.py -> cvrfparse-0.10 hard linking setup.py -> cvrfparse-0.10 hard linking cvrfparse/__init__.py -> cvrfparse-0.10/cvrfparse hard linking cvrfparse/cvrfparse.py -> cvrfparse-0.10/cvrfparse hard linking cvrfparse.egg-info/PKG-INFO -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse.egg-info/SOURCES.txt -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse.egg-info/dependency_links.txt -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse.egg-info/entry_points.txt -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse.egg-info/requires.txt -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse.egg-info/top_level.txt -> cvrfparse-0.10/cvrfparse.egg-info hard linking cvrfparse/sample-xml/CVRF-1.1-cisco-sa-20110525-rvs4000.xml -> cvrfparse-0.10/cvrfparse/sample-xml hard linking cvrfparse/schemata/catalog.xml -> cvrfparse-0.10/cvrfparse/schemata hard linking cvrfparse/schemata/common/1.1/common.xsd -> cvrfparse-0.10/cvrfparse/schemata/common/1.1 hard linking cvrfparse/schemata/cvrf/1.1/cvrf.xsd -> cvrfparse-0.10/cvrfparse/schemata/cvrf/1.1 hard linking cvrfparse/schemata/dublincore/dc.xsd -> cvrfparse-0.10/cvrfparse/schemata/dublincore hard linking cvrfparse/schemata/prod/1.1/prod.xsd -> cvrfparse-0.10/cvrfparse/schemata/prod/1.1 hard linking cvrfparse/schemata/scap/cpe-language_2.2a.xsd -> cvrfparse-0.10/cvrfparse/schemata/scap hard linking cvrfparse/schemata/scap/cvss-v2_0.9.xsd -> cvrfparse-0.10/cvrfparse/schemata/scap hard linking cvrfparse/schemata/scap/scap-core_0.9.xsd -> cvrfparse-0.10/cvrfparse/schemata/scap hard linking cvrfparse/schemata/vuln/1.1/vuln.xsd -> cvrfparse-0.10/cvrfparse/schemata/vuln/1.1 hard linking cvrfparse/schemata/w3.org/xml.xsd -> cvrfparse-0.10/cvrfparse/schemata/w3.org Writing cvrfparse-0.10/setup.cfg Creating tar archive removing 'cvrfparse-0.10' (and everything under it) running upload Traceback (most recent call last): File "setup.py", line 21, in <module> ['cvrfparse = cvrfparse.cvrfparse:main',]} File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup dist.run_commands() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/upload.py", line 60, in run self.upload_file(command, pyversion, filename) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/upload.py", line 135, in upload_file self.password) TypeError: cannot concatenate 'str' and 'NoneType' objects 

Something seems to be None , where was it before?

Then I tried to download the package manually, creating the distribution via:

 % python setup.py sdist 

And uploading this file to PyPI via the web interface. pip install is still reporting the same issue with this new .10 package. Where am I mistaken?

+4
source share
1 answer

PyPI seems to have your package and it downloads just fine (for me, on Ubuntu 12.04.2 in pure virtualenv). Your tool uses console_scripts, and on your main argument (progname), which load_enry_point () (setuptools) does not send. Just assign the default value to this parameter. For instance:

 def main(progname=sys.argv[0]): 

and you must be gold. Remember to update the version number and reload PyPI.

+1
source

All Articles