Re: [Distutils] Not installing the install_requires

At 07:43 AM 7/15/2009 -0700, Peter Bengtsson wrote:
Crap! That didn't work either! IOError: [Errno 20] Not a directory: '/home/peterbe/virtualenvs/ djangopeoplenet/lib/python2.5/site-packages/premailer-1.2-py2.5.egg/ premailer/version.txt'
This must be because of some egg magic that I don't understand. What I did was this (in premailer.py):
__version__ = open(os.path.join(os.path.dirname(__file__), 'version.txt') ).read().strip()
from pkg_resources import resource_string __version__ = resource_string(__name__, 'version.txt').strip() Make sure that you either list 'version.txt' in your setup() data_files or else use include_package_data=True and a revision control system that includes the version.txt file, or else the version.txt won't be included in your sdists and eggs.

From my experience in building all the pypi packages, I can confirm that a significant number of packages (> 10 at least), fail to build[1] because it cannot read a file (usually LICENSE.txt, version.txt, README.txt in the sdist root) using __file__. It is unfortunate that we have this mess. -srid [1] "python setup.py install --root=installdir/" run using subprocess On Wed, 15 Jul 2009 08:45:21 -0700, P.J. Eby <pje@telecommunity.com> wrote:
At 07:43 AM 7/15/2009 -0700, Peter Bengtsson wrote:
Crap! That didn't work either! IOError: [Errno 20] Not a directory: '/home/peterbe/virtualenvs/ djangopeoplenet/lib/python2.5/site-packages/premailer-1.2-py2.5.egg/ premailer/version.txt'
This must be because of some egg magic that I don't understand. What I did was this (in premailer.py):
__version__ = open(os.path.join(os.path.dirname(__file__), 'version.txt') ).read().strip()
from pkg_resources import resource_string __version__ = resource_string(__name__, 'version.txt').strip()
Make sure that you either list 'version.txt' in your setup() data_files or else use include_package_data=True and a revision control system that includes the version.txt file, or else the version.txt won't be included in your sdists and eggs.
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig

2009/7/16 Sridhar Ratnakumar <sridharr@activestate.com>:
From my experience in building all the pypi packages, I can confirm that a significant number of packages (> 10 at least), fail to build[1] because it cannot read a file (usually LICENSE.txt, version.txt, README.txt in the sdist root) using __file__.
It is unfortunate that we have this mess.
PEP 302 and imports from zip files have been round since Python 2.3. Unfortunately, very few people write their packages with the idea that they may not be loaded from the filesystem in mind. As a result, we have things like the "not zip safe" flag in setuptools. I wish this didn't happen, but I don't know how to stop it. Partially, it may be because the support for getting data resources in PEP 302 is minimal, but equally the support is minimal because no-one has proposed adding anything extra, and that's because no-one tries to use it, and... Even setuptools/pkg_resources hasn't encouraged people to fix stuff like this :-( Paul. PS If someone were to propose some extra PEP 302 features, I'd be happy to help get them added and support incorporated into the stdlib.

Hi, I'm testing pythonpkgmgr under linux now. I'm really keen to allow users to have a way to install packages in /usr/local/lib without having super user access (it's a hassle typing in a password every time). I feel that if they want to install into /usr/lib/pythonX.X/site-packages then it's fair enough that they have a su password. Anyway.. If I just use "easy_install html5lib" and not "sudo easy_install html5lib" and then I get the following error: -------------------------------------------------------------------------------- Running installer ... /usr/bin/easy_install "/media/Elements/Pythn Packages/html5lib-0.10.zip" ERRORS: Traceback (most recent call last): File "/usr/bin/easy_install", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/apport_python_hook.py", line 78, in apport_excepthook report_file = open(pr_filename, 'wt') IOError: [Errno 13] Permission denied: '/var/crash/_usr_bin_easy_install.1000.crash' Original exception was: Traceback (most recent call last): File "/usr/bin/easy_install", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources -------------------------------------------------------------------------------- If I run with sudo... ------------------------------------------------------------------ Running installer ... sudo /usr/bin/easy_install "/media/Elements/Pythn Packages/html5lib-0.10.zip" Processing html5lib-0.10.zip Running html5lib-0.10/setup.py -q bdist_egg --dist-dir /tmp/easy_install-sV7fV2/html5lib-0.10/egg-dist-tmp-AT346T zip_safe flag not set; analyzing archive contents... Adding html5lib 0.10 to easy-install.pth file Installed /usr/lib/python2.5/site-packages/html5lib-0.10-py2.5.egg Processing dependencies for html5lib==0.10 Finished processing dependencies for html5lib==0.10 ------------------------------------------------------------------ Here's the log for installing setuptools.. dlyon@MiniQ-ubunto-8:/media/Elements/Pythn Packages/setuptools-0.6c9$ sudo python setup.py install [sudo] password for dlyon: running install running bdist_egg running egg_info writing setuptools.egg-info/PKG-INFO writing top-level names to setuptools.egg-info/top_level.txt writing dependency_links to setuptools.egg-info/dependency_links.txt writing entry points to setuptools.egg-info/entry_points.txt reading manifest file 'setuptools.egg-info/SOURCES.txt' writing manifest file 'setuptools.egg-info/SOURCES.txt' installing library code to build/bdist.linux-i686/egg running install_lib running build_py creating build creating build/lib copying pkg_resources.py -> build/lib copying easy_install.py -> build/lib copying site.py -> build/lib creating build/lib/setuptools copying setuptools/extension.py -> build/lib/setuptools copying setuptools/sandbox.py -> build/lib/setuptools copying setuptools/depends.py -> build/lib/setuptools copying setuptools/__init__.py -> build/lib/setuptools copying setuptools/archive_util.py -> build/lib/setuptools copying setuptools/dist.py -> build/lib/setuptools copying setuptools/package_index.py -> build/lib/setuptools creating build/lib/setuptools/tests copying setuptools/tests/test_resources.py -> build/lib/setuptools/tests copying setuptools/tests/__init__.py -> build/lib/setuptools/tests copying setuptools/tests/test_packageindex.py -> build/lib/setuptools/tests copying setuptools/tests/doctest.py -> build/lib/setuptools/tests creating build/lib/setuptools/command copying setuptools/command/build_ext.py -> build/lib/setuptools/command copying setuptools/command/upload.py -> build/lib/setuptools/command copying setuptools/command/bdist_wininst.py -> build/lib/setuptools/command copying setuptools/command/egg_info.py -> build/lib/setuptools/command copying setuptools/command/__init__.py -> build/lib/setuptools/command copying setuptools/command/setopt.py -> build/lib/setuptools/command copying setuptools/command/install_egg_info.py -> build/lib/setuptools/command copying setuptools/command/bdist_egg.py -> build/lib/setuptools/command copying setuptools/command/install.py -> build/lib/setuptools/command copying setuptools/command/bdist_rpm.py -> build/lib/setuptools/command copying setuptools/command/install_lib.py -> build/lib/setuptools/command copying setuptools/command/saveopts.py -> build/lib/setuptools/command copying setuptools/command/develop.py -> build/lib/setuptools/command copying setuptools/command/easy_install.py -> build/lib/setuptools/command copying setuptools/command/build_py.py -> build/lib/setuptools/command copying setuptools/command/install_scripts.py -> build/lib/setuptools/command copying setuptools/command/sdist.py -> build/lib/setuptools/command copying setuptools/command/rotate.py -> build/lib/setuptools/command copying setuptools/command/alias.py -> build/lib/setuptools/command copying setuptools/command/register.py -> build/lib/setuptools/command copying setuptools/command/test.py -> build/lib/setuptools/command copying setuptools/cli.exe -> build/lib/setuptools copying setuptools/gui.exe -> build/lib/setuptools creating build/bdist.linux-i686 creating build/bdist.linux-i686/egg copying build/lib/pkg_resources.py -> build/bdist.linux-i686/egg copying build/lib/easy_install.py -> build/bdist.linux-i686/egg copying build/lib/site.py -> build/bdist.linux-i686/egg creating build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/extension.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/sandbox.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/depends.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/__init__.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/archive_util.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/dist.py -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/package_index.py -> build/bdist.linux-i686/egg/setuptools creating build/bdist.linux-i686/egg/setuptools/tests copying build/lib/setuptools/tests/test_resources.py -> build/bdist.linux-i686/egg/setuptools/tests copying build/lib/setuptools/tests/__init__.py -> build/bdist.linux-i686/egg/setuptools/tests copying build/lib/setuptools/tests/test_packageindex.py -> build/bdist.linux-i686/egg/setuptools/tests copying build/lib/setuptools/tests/doctest.py -> build/bdist.linux-i686/egg/setuptools/tests creating build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/build_ext.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/upload.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/bdist_wininst.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/egg_info.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/__init__.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/setopt.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/install_egg_info.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/bdist_egg.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/install.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/bdist_rpm.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/install_lib.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/saveopts.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/develop.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/easy_install.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/build_py.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/install_scripts.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/sdist.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/rotate.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/alias.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/register.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/command/test.py -> build/bdist.linux-i686/egg/setuptools/command copying build/lib/setuptools/cli.exe -> build/bdist.linux-i686/egg/setuptools copying build/lib/setuptools/gui.exe -> build/bdist.linux-i686/egg/setuptools byte-compiling build/bdist.linux-i686/egg/pkg_resources.py to pkg_resources.pyc byte-compiling build/bdist.linux-i686/egg/easy_install.py to easy_install.pyc byte-compiling build/bdist.linux-i686/egg/site.py to site.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/extension.py to extension.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/sandbox.py to sandbox.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/depends.py to depends.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/__init__.py to __init__.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/archive_util.py to archive_util.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/dist.py to dist.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/package_index.py to package_index.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/tests/test_resources.py to test_resources.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/tests/__init__.py to __init__.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/tests/test_packageindex.py to test_packageindex.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/tests/doctest.py to doctest.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/build_ext.py to build_ext.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/upload.py to upload.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/bdist_wininst.py to bdist_wininst.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/egg_info.py to egg_info.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/__init__.py to __init__.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/setopt.py to setopt.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/install_egg_info.py to install_egg_info.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/bdist_egg.py to bdist_egg.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/install.py to install.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/bdist_rpm.py to bdist_rpm.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/install_lib.py to install_lib.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/saveopts.py to saveopts.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/develop.py to develop.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/easy_install.py to easy_install.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/build_py.py to build_py.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/install_scripts.py to install_scripts.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/sdist.py to sdist.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/rotate.py to rotate.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/alias.py to alias.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/register.py to register.pyc byte-compiling build/bdist.linux-i686/egg/setuptools/command/test.py to test.pyc creating build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO copying setuptools.egg-info/zip-safe -> build/bdist.linux-i686/egg/EGG-INFO creating dist creating 'dist/setuptools-0.6c9-py2.5.egg' and adding 'build/bdist.linux-i686/egg' to it removing 'build/bdist.linux-i686/egg' (and everything under it) Processing setuptools-0.6c9-py2.5.egg Copying setuptools-0.6c9-py2.5.egg to /usr/lib/python2.5/site-packages Adding setuptools 0.6c9 to easy-install.pth file Installing easy_install script to /usr/bin Installing easy_install-2.5 script to /usr/bin Installed /usr/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg Processing dependencies for setuptools==0.6c9 Finished processing dependencies for setuptools==0.6c9
participants (4)
-
David Lyon
-
P.J. Eby
-
Paul Moore
-
Sridhar Ratnakumar