我正在使用python 2.7.5。我创建了一个简单的python项目pythontest
。我项目的文件夹结构如下:
pythontest
|
-setup.py
-README.md
-src
|
-- pack1
|
test1.py
test2.py
|
--pack2
|
test3.py
我的文件是这样的:
test1.py
print "hello"
test2.py
import test1
import src.pack2.test3
print "hai"
test3.py
print "how are you?"
我的确是这样的:
sudo python setup.py install
python src/pack1/test2.py
但我收到以下错误:
hello
Traceback (most recent call last):
File "src/pack1/test2.py", line 7, in <module>
import src.pack2.test3
ImportError: No module named pack2.test3
但我可以运行eclipse中的代码。我的代码出了什么问题? setup.py文件如下:
import os
from setuptools import setup
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
setup(
name = "pythontest",
version = "0.0.4",
author = "Andrew Carter",
author_email = "andrewjcarter@gmail.com",
description = ("An demonstration of how to create, document, and publish "
"to the cheese shop a5 pypi.org."),
license = "BSD",
keywords = "example documentation tutorial",
url = "http://packages.python.org/an_example_pypi_project",
packages=[],
long_description=read('README.md'),
classifiers=[
"Development Status :: 3 - Alpha",
"Topic :: Utilities",
"License :: OSI Approved :: BSD License",
],
)
答案 0 :(得分:0)
您需要将__init__.py
- 文件放入包中(在您的情况下,src,pack1和pack2)才能生效。另外,你应该把src作为包名取消(它是通用的,毫无意义),而是使用与你的实际代码库有关的东西,例如: supercoolapp或amazinglib或任何你正在写的东西。
然后,您需要将该顶级包添加到setup.py中的packages-list。