Python3从以数字开头的目录导入文件
我试了试答案,但没用,所以我觉得值得再问一个问题。目录布局如下所示:Python3从以数字开头的目录导入文件,python,python-3.x,import,Python,Python 3.x,Import,我试了试答案,但没用,所以我觉得值得再问一个问题。目录布局如下所示: aale/ 2/ 2.py __init__.py 3/ 3.py __init__.py __init__.py 很遗憾,名称无法更改(这是针对硬件问题提供给我们的布局)。我正在尝试从3导入2,但它似乎不起作用。我尝试将importlib用作: two=importlib.import\u模块('2.2')以及 two=importlib
aale/
2/
2.py
__init__.py
3/
3.py
__init__.py
__init__.py
很遗憾,名称无法更改(这是针对硬件问题提供给我们的布局)。我正在尝试从3
导入2
,但它似乎不起作用。我尝试将importlib
用作:
two=importlib.import\u模块('2.2')
以及
two=importlib.import\u模块('2')
这也不起作用(给出了一个ModuleNotFoundError:没有名为“2”的模块error)。如有任何帮助/其他方法,将不胜感激。我正在使用Python 3.6。您可以使用,即:
相当于:
import 2.2 as two
import 3.3 as three
这是不可能的
注意事项:
根据《PEP 8造型指南》
:
程序包和模块名称应具有简短的所有小写名称。可以在模块名称中使用下划线
如果情况有所改善
可读性
我已经使用与您的中相同的文件夹结构测试了导入
问题,没有显示错误
参考文献:
假设您的脚本位于aale
目录中,则需要执行以下导入操作:
two = importlib.import_module('aale.2.2')
您可以使用pathlib
它是基本的:
from pathlib import Path
BASE_LOCATION = Path(__file__).parent
(您可以添加.parent
以访问上面的文件夹,依此类推。)
编辑
如果这对您没有帮助,您可以尝试导入weirdimport
你可以阅读更多关于这方面的内容
希望这有帮助 使用链接问题的公认答案时会出现什么错误?@roganjosh same
ModuleNotFound
error,我想,import\u module
是一个用于\uu import\uuuu
的包装器,不管你用的是什么IDE?@MosheSlavin我只是在命令行上用python3.py
编辑并运行这个程序,好吧,但这是OP的任务,这并不能解决问题issue@AJwr我没有意识到它是硬件,答案更新了,谢谢。为此,我得到了modulenofounderror:No module name'aale'
我不知道该说什么,我只是测试了你的确切结构。虽然你说你有\uuuu init.\uuuu py
,但应该是\uuuu init.\uuuuuu py
是的,只是一个输入错误。嗯,我们可能运气不好。对不起,我不知道怎么用这个。在@Stephen的回答中,你说你得到了ModuleNotFoundError:没有名为'aale'的模块
,因此除了他的解决方案之外,你还可以从pathlib添加路径
from pathlib import Path
BASE_LOCATION = Path(__file__).parent