我正在尝试安装Pyramid应用程序 - 让我们说test_app
。在虚拟环境中,它以test-app
的形式安装(pip冻结输出显示test-app==0.0
)。
因此,我无法导入包。
我该如何解决这个问题?
更多信息: http://mail.python.org/pipermail/distutils-sig/2011-August/017935.html
我正在使用pip版本1.3.1
setup.py:
import os
from setuptools import setup, find_packages
here = os.path.abspath(os.path.dirname(__file__))
README = open(os.path.join(here, 'README.txt')).read()
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
requires = [
'pyramid',
'pyramid_debugtoolbar',
'waitress',
]
setup(name='test_app',
version='0.0',
description='test_app',
long_description=README + '\n\n' + CHANGES,
classifiers=[
"Programming Language :: Python",
"Framework :: Pyramid",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
],
author='',
author_email='',
url='',
keywords='web pyramid pylons',
packages=find_packages(),
include_package_data=True,
zip_safe=False,
install_requires=requires,
tests_require=requires,
test_suite="test_app",
entry_points="""\
[paste.app_factory]
main = test_app:main
""",
)
更新:
总结迄今为止的调查结果:
答案 0 :(得分:5)
所以,经过大量的摆弄,我终于找到了解决方案 - 这很烦人。
我正在使用virtualenv并在开发模式下安装软件包。
我是从错误的位置安装软件包。事实证明,运行python setup.py develop
的位置(目录)确实是进入.egg-link
文件的位置(目录)。
您应该将软件包安装到虚拟环境中,从您的代码所在的位置开始。
所以,例如,假设您的代码位于'/ a / b',而您的virtualenv env位于'/ x / y / env',那么您应该安装这样的包:
$ cd /a/b
$ /x/y/env/bin/python setup.py develop
这将正确安装包。
因此,“ - ”和“_”问题不是问题,您应该注意在develop
模式下安装软件包的位置。