【发布时间】:2023-03-15 23:25:01
【问题描述】:
这是我第一次尝试以组织良好的结构编写代码,但在导入时遇到了麻烦。抱歉,如果这是一个愚蠢的问题。我要导入的模块在smureader包下的test包中
C:\User\Documents\Python Scripts\smureader\test\unittestExample.py
当我运行 sys.path:
['C:\\User\\Documents\\Python Scripts\\smureader',
'C:\\User\\Documents\\Python Scripts\\smureader',
'C:\\Progra~1\\Anaconda3\\python37.zip',
'C:\\Progra~1\\Anaconda3\\DLLs',
'C:\\Progra~1\\Anaconda3\\lib',
'C:\\Progra~1\\Anaconda3',
'',
'C:\\Progra~1\\Anaconda3\\lib\\site-packages',
'C:\\Progra~1\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Progra~1\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Progra~1\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Progra~1\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\J26612\\.ipython']
但是当我尝试从 unittestExample.py 导入一个类时,我得到一个错误
from smureader.test.unittestExample import TestStringMethods
Traceback (most recent call last):File "<ipython-input-4-5cc4a996aaee>", line 1, in <module>
from smureader.test.unittestExample import TestStringMethods ModuleNotFoundError: No module named 'smureader'
我真的很茫然。一直在尝试阅读sys.path、PYTHONPATH 和导入,但只是变得更加困惑。这只是一个例子,我不能从我的结构中的任何地方导入我的模块。请有人告诉我我做错了什么。
【问题讨论】:
-
smureader的父级需要在路径中,所有 .py 文件和包含__init__.py文件的子目录现在都是模块。 -
它有助于将图像拉入文本并直接与问题一起发布。目录树可能需要一点 ascii 艺术。
-
请不要将图像用于错误消息、代码和简单的目录结构:复制粘贴到代码块中,并为目录结构使用一点 ASCII 艺术。绝对不要提供外部图片的链接。无法搜索图像,并且并非每个浏览器(屏幕阅读器)都可以显示它们。
标签: python pythonpath sys.path