Patrick Andrew <[email protected]> added the comment:
>From py-logilab-common 0.57.1 port for FreeBSD. No patches applied:
package init file './test/__init__.py' not found (or not a regular file)
Traceback (most recent call last):
File "setup.py", line 170, in <module>
install()
File "setup.py", line 166, in install
**kwargs
File "/usr/local/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/local/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/local/lib/python2.7/distutils/command/build.py", line 127, in run
self.run_command(cmd_name)
File "/usr/local/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/local/lib/python2.7/distutils/command/build_py.py", line 93, in run
self.build_packages()
File "/usr/local/lib/python2.7/distutils/command/build_py.py", line 372, in
build_packages
self.build_module(module, module_file, package)
File "/usr/local/lib/python2.7/distutils/command/build_py.py", line 333, in
build_module
"'package' must be a string (dot-separated), list, or tuple")
TypeError: 'package' must be a string (dot-separated), list, or tuple
*** Error code 1
Stop in /usr/src/ports/devel/py-logilab-common.
This package's setup.py is auto-generating the packages list with the current
working directory.
def get_packages(directory, prefix):
"""return a list of subpackages for the given directory"""
result = []
for package in os.listdir(directory):
absfile = join(directory, package)
if isdir(absfile):
if exists(join(absfile, '__init__.py')) or \
package in ('test', 'tests'):
if prefix:
result.append('%s.%s' % (prefix, package))
else:
result.append(package)
result += get_packages(absfile, result[-1])
return result
...
packages = [modname] + get_packages(os.getcwd(), modname)
kwargs['packages'] = packages
setup(...
**kwargs)
where modname is imported from __pkginfo__.py:
distname = 'logilab-common'
modname = 'common'
What's interesting is there is no explicit unicode string definition within
this package list gerneration, yet the final packages list looks like:
['logilab.common', u'logilab.common.test', u'logilab.common.test.data',
u'logilab.common.test.data.find_test', u'logilab.common.ureports']
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13943>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com