[英]Creating importable Python 3 package / module
我在创建可导入的Python包/库/模块或任何正确的命名法时遇到了麻烦。 我正在使用Python 3.7
我正在使用的文件结构是:
Python37//Lib//mypackage
mypackage
__init__.py
mypackage_.py
__init__.py
的代码是:
from mypackage.mypackage_ import MyClass
mypackage_.py
的代码是:
class MyClass:
def __init__(self, myarg = None):
self.myvar = myarg
在我的桌面上,我尝试运行以下代码:
import mypackage
x = MyClass(None)
但是出现以下错误:
Traceback (most recent call last):
File "C:\Users\***\Desktop\importtest.py", line 3, in <module>
x = MyClass(None)
NameError: name 'MyClass' is not defined
您尚未将名称MyClass
导入当前的名称空间。 您已导入mypackage
。 要访问mypackage
任何内容,您需要在名称前加上mypackage.<Name>
import mypackage
x = mypackage.MyClass(None)
正如@rdas所说,您需要在名称前加上mypackage.<Name>
。
我不建议这样做,但是您可以通配符导入以使x = MyClass(None)
起作用:
from mypackage import *
现在, mypackage
所有内容mypackage
导入,并且可以在当前名称空间中使用。 但是,您必须小心通配符导入,因为它们会创建定义冲突(如果多个模块在不同事物上具有相同的名称)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.