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
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?