Unicode string in namespace_package name causes TypeError in site.py with single-version-externally-managed

Jason R. Coombs avatarJason R. Coombs created an issue

It seems that including a unicode string in namespace_package name causes TypeError in site.py with single-version-externally-managed

Originally reported as this PIP issue, it seems the underlying issue is with setuptools and the --single-version-externally-managed option.

When one installs a package with a namespace_package that is unicode (even though it is ASCII), it creates a .pth file that causes the environment to fail to start.

For example,

jaraco@hideaki:~$ virtualenv --distribute env
New python executable in env/bin/python2.7
Also creating executable in env/bin/python
Installing distribute.............................................................................................................................................................................................done.
Installing pip...............done.
jaraco@hideaki:~$ wget http://pypi.python.org/packages/source/j/jaraco.util/jaraco.util-5.0.1.tar.gz -O - | tar xz
--2012-02-07 02:53:39--  http://pypi.python.org/packages/source/j/jaraco.util/jaraco.util-5.0.1.tar.gz
Resolving pypi.python.org... 82.94.164.168, 2001:888:2000:d::a8
Connecting to pypi.python.org|82.94.164.168|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 60069 (59K) [application/octet-stream]
Saving to: `STDOUT'

100%[======================================>] 60,069       141K/s   in 0.4s

2012-02-07 02:53:39 (141 KB/s) - written to stdout [60069/60069]

jaraco@hideaki:~$ cd jaraco.util-5.0.1
jaraco@hideaki:~/jaraco.util-5.0.1$ ../env/bin/python setup.py install --single-version-externally-managed --record foo
running install
running build
running build_py
...
running install_lib
...
running install_egg_info
running egg_info
...
Installing /home/jaraco/env/lib/python2.7/site-packages/jaraco.util-5.0.1-py2.7-nspkg.pth
running install_scripts
Installing roll-dice script to /home/jaraco/env/bin
Installing calc-prorate script to /home/jaraco/env/bin
writing list of installed files to 'foo'
jaraco@hideaki:~/jaraco.util-5.0.1$ ../env/bin/python
Traceback (most recent call last):
  File "/home/jaraco/jaraco.util-5.0.1/../env/lib/python2.7/site.py", line 677, in <module>
    main()
  File "/home/jaraco/jaraco.util-5.0.1/../env/lib/python2.7/site.py", line 657, in main
    paths_in_sys = addsitepackages(paths_in_sys)
  File "/home/jaraco/jaraco.util-5.0.1/../env/lib/python2.7/site.py", line 273, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/home/jaraco/jaraco.util-5.0.1/../env/lib/python2.7/site.py", line 203, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/home/jaraco/jaraco.util-5.0.1/../env/lib/python2.7/site.py", line 172, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
TypeError: module.__init__() argument 1 must be string, not unicode

Comments (1)

  1. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.