【发布时间】:2016-12-20 18:12:28
【问题描述】:
我的 PyCharm 项目的结构是这样的:
MyPrj
|_ src
|_ main.py
MyPackage
|_ src
| |_ MyPackage
| |_ __init__.py
| |_ MyModule.py
|_ setup.py
在main.py 中,我添加了这一行:from MyPackage import MyModule。
我使用 anaconda3 (~/anaconda3/bin/pip install .) 成功安装了这个模块。在遇到一些关于找不到MyPackage的问题后,我重新安装了anaconda3,代码终于可以工作了。
现在我在MyPackage/src/MyPackage 中添加了另一个模块MySub.py,然后我在MyModule.py 中导入了它(from MySub import sub,其中sub 是在MySub.py 中正确定义的类)。在 anaconda3 中升级我的包后,当我尝试运行 main.py 时出现以下错误:ImportError: No module named 'sub1',但是如果我查看 anaconda3 的 site-packages 文件夹,MySub.py 存在。如何解决这个问题?
这是我的setup.py 文件:
import os
from setuptools import setup
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
setup(
name='MyPackage',
version='0.1',
description='my description',
long_description=read('README.txt'),
packages=['MyPackage'],
package_dir={'MyPackage': 'src/MyPackage'},
zip_safe=False
)
我的__init__.py 文件为空。
【问题讨论】:
-
您是否真的在您的
import语句中添加了.py? -
抱歉打错了,我更正了
-
我们需要看到一个真实的minimal reproducible example,而不是几行记错的导入和目录树。
-
@user2357112 我提供了更多信息并添加了
setup.py文件。如果需要其他信息,请告诉我。
标签: python python-3.x setuptools