导入我自己的包时出现Python导入问题

2024-04-19 03:13:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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.pyfrom 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文件是空的。你知道吗


Tags: 模块frompyimportsrcreadinitos
1条回答
网友
1楼 · 发布于 2024-04-19 03:13:12

更改:

from MyPackage import module.py

收件人:

from MyPackage import module

module是Python模块的名称;module.py是文件本身的名称,在import语句中是不允许的。实际上,当您执行import module.py操作时,Python导入系统将在module中的名为py的对象中查找,这不太可能是您真正想要的。有关详细信息,请参见thisthis。你知道吗

相关问题 更多 >