Opened at 2009-09-14T22:56:18Z
Last modified at 2013-05-25T02:48:24Z
#804 closed defect
Cannot Install, No Python.h (zope, pycryptopp), Cannot Obtain Dependency List — at Initial Version
Reported by: | arch_o_median | Owned by: | nobody |
---|---|---|---|
Priority: | minor | Milestone: | 1.8.1 |
Component: | packaging | Version: | 1.5.0 |
Keywords: | binaries install dependency pycryptopp linux x86-64 | Cc: | |
Launchpad Bug: |
Description
Some System Configuration Information
arc@showertimedepot:~/tahoe$ darcs --version 2.0.2 (release) arc@showertimedepot:~/tahoe$ uname -a Linux showertimedepot 2.6.18.8-x86_64-linode7 #1 SMP Fri Aug 14 17:14:08 UTC 2009 x86_64 GNU/Linux arc@showertimedepot:~/tahoe$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 8.10 Release: 8.10 Codename: intrepid
Downloads
Per these instructions I ran:
darcs get --lazy http://allmydata.org/source/tahoe/trunk-hashedformat tahoe
I've deviated from the prescribed protocol since the default install docs do not recommend acquiring the source from the darcs repo.
Perhaps differences between the tarball and the repo versions generate this bug.
To check this I also attempt to build from the tarball in a separate location.
I.E. I ran:
wget http://allmydata.org/source/tahoe/releases/allmydata-tahoe-1.5.0.zip
Build From Repo
Per these instructions I ran:
~/tahoe$ python ./setup.py build &> from_repo_build_log.txt
in the "from-repo" directory.
Upon inspection of the output (attached) I see several error-types.
I guess these two to be not-fatal:
- "darcs failed: Not a repository: ..." and
- "cc1plus: warning:..." lines are not fatal.
Following those two error-types the next error is:
pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or directory
Difference Between First and Second Build Attempts in From-Tarball Version
In the "from-tar" directory I ran:
python ./setup.py build &> from_tar_build_log_initial.txt
(Actually I changed the log names to be more descriptive, after the fact.)
I do not notice obvious differences between repo and tar.
I do notice differences between initial and subsequent build-attempts.
(Perhaps I should be writing "setup-" vice "build-" attempts.)
arc@showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope from_tar_build_log_initial.txt | grep Python.h src/zope/interface/_zope_interface_coptimizations.c:15:20: error: Python.h: No such file or directory arc@showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope from_tar_build_log_second.txt | grep Python.h
(Log names changed after the fact for clarity.)
Intriguingly "zope" appears to be missing "Python.h" on the first build attempt, this is not reported on subsequent build attempts.
The missing Python.h in pycryptopp is reported in initial and subsequent build attempts:
arc@showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp from_tar_build_log_initial.txt | grep Python.h pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or directory arc@showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp from_tar_build_log_second.txt | grep Python.h pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or directory
First Versus Second From Repo Setup
Is the difference between initial and subsequent setup bugs also
seen in the from repo version?
To find out I tested a fresh from-repo setup attempt.
arc@showertimedepot:~/tahoe-darcs$ darcs get --lazy http://allmydata.org/source/tahoe/trunk-hashedformat tahoe Finished getting.
arc@showertimedepot:~/tahoe-darcs/tahoe$ grep -iEe"zope|pycryp" | grep Python.h from_repo_* from_repo_initial_setup.txt:src/zope/interface/_zope_interface_coptimizations.c:15:20: error: Python.h: No such file or directory from_repo_initial_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or directory from_repo_second_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or directory
So the difference between zope and pycryptopp initial vs.
second installs generalizes to installs from tar and from repo.
Bug Interpretation
It looks like Python.h of pycryptopp is not found so I guess that I lack some necessary dependency.
Calling All Dependencies
(Since my bug does not seem to vary between from-repo and from-tar, I stick to from repo from here on.)
Where're these elusive Python.h's? Sound like C headers to me....
Naive:
arc@showertimedepot:~/tahoe-darcs/tahoe$ find . -iname "*Python.h*" arc@showertimedepot:~/tahoe-darcs/tahoe$
OK, not surprising since docs say all repo is python, and what's missing is C. So, my belief that I have a dependency problem grows stronger.
Following More Details, I learn that I can view "the canonical list of dependencies" in _auto_deps.py.
Of course, I cannot run "tahoe --version" yet so I skip that advice...
Aha! A "complete list of all dependencies..."
PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c "import pkg_resources;print ', '.join([d.project_name+': '+d.version for d in set(pkg_resources.require('allmydata-tahoe'))])"
arc@showertimedepot:~/tahoe-darcs/tahoe$ PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c "import pkg_resources;print ', '.join([d.project_name+': '+d.version for d in set(pkg_resources.require('allmydata-tahoe'))])" Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 626, in require needed = self.resolve(parse_requirements(requirements)) File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 524, in resolve raise DistributionNotFound(req) # XXX put more info here pkg_resources.DistributionNotFound: pycryptopp>=0.5.15 arc@showertimedepot:~/tahoe-darcs/tahoe$
Hmmm.... next step... submit and wait... if no help then dissect above expression...
OK, I did try to dissect a tiny bit:
In ipython interpreter:
In [1]: import sys In [2]: sys.path Out[2]: ['', '/usr/bin', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/var/lib/python-support/python2.5', '/var/lib/python-support/python2.5/IPython/Extensions', '/home/arc/.ipython'] In [3]: sys.path.append('./support/lib/python2.5/site-packages/') In [4]: import pkg_resources --------------------------------------------------------------------------- ImportError Traceback (most recent call last) /home/arc/tahoe-darcs/tahoe/<ipython console> in <module>() ImportError: No module named pkg_resources
(And just to be sure I tried above with explicit path name from root to relevant site-packages.)
Which is:
arc@showertimedepot:~/tahoe-darcs/tahoe$ ls -la ./support/lib/python2.5/site-packages/ total 32 drwxr-xr-x 3 arc arc 4096 2009-09-14 22:32 . drwxr-xr-x 3 arc arc 4096 2009-09-14 22:30 .. -rw-r--r-- 1 arc arc 35 2009-09-14 22:32 allmydata-tahoe.egg-link -rw-r--r-- 1 arc arc 297 2009-09-14 22:30 easy-install.pth drwxr-xr-x 4 arc arc 4096 2009-09-14 22:32 setuptools-0.6c12dev.egg -rw-r--r-- 1 arc arc 27 2009-09-14 22:32 setuptools.pth -rw-r--r-- 1 arc arc 2327 2009-09-14 22:30 site.py -rw-r--r-- 1 arc arc 1833 2009-09-14 22:30 site.pyc