【发布时间】:2021-03-21 13:45:03
【问题描述】:
出于某种原因,我不得不将模块名称从 A.py 更改为 0880ceae-8a46-11eb-bcf6-38f9d349be8e.py。 0880ceae-8a46-11eb-bcf6-38f9d349be8e.py是uuid.uuid1()生成的uid。
更改后,我尝试通过以下两种方式从py文件中导入class B,均无效。
第一个解决方案是直接导入
from 0880ceae-8a46-11eb-bcf6-38f9d349be8e import B
它有一个错误SyntaxError: invalid token
第二种解决方法是在导入前定义一个变量
uid = '0880ceae-8a46-11eb-bcf6-38f9d349be8e'
from uid import Model_API
它有一个错误ModuleNotFoundError: No module named 'uid'
有人有好主意吗?谢谢。
【问题讨论】:
-
在 Python 中,有效标识符不能包含破折号或以数字开头,模块名称是标识符。文件名 是否有 是该特定值,或者您可以添加前缀并更改破折号,例如
A_0880ceae_8a46_11eb_bcf6_38f9d349be8e.py? -
如果您真的坚持使用非标准名称,您也许可以使用
importlib构造一些东西。
标签: python python-3.x pythonpath