Kan*_*ter 7 python packages python-3.x
我按照Python Central上的简易指南为我的代码创建一个包:
https://www.pythoncentral.io/how-to-create-a-python-package/
所以我的目录结构是:
main.py
pack1/
__init__.py
Class1.py
Run Code Online (Sandbox Code Playgroud)
在main.py我导入和使用的文件Class1中:
from pack1 import Class1
var1 = Class1()
Run Code Online (Sandbox Code Playgroud)
在__init__.py我写的文件中:
import Class1 from Class1
Run Code Online (Sandbox Code Playgroud)
我完全按照指南,仍然得到错误:
ModuleNotFoundError: No module named 'Class1' (in __init__.py)
Run Code Online (Sandbox Code Playgroud)
Mik*_*ler 10
Python 3具有绝对导入.将您更改__init__.py为:
from .Class1 import Class1
Run Code Online (Sandbox Code Playgroud)
前导点表示此模块是相对__init__.py于此位置的位置而找到的.否则,它会查找具有此名称的独立模块.
PEP 328提供了所有细节.从Python 3.0开始,这是唯一的方法:
删除了语法
相对导入唯一可接受的语法是
from .[module] import name.所有import不.以此开头的表格都被解释为绝对导入.(PEP 0328)
该文件Class1.py包含以下代码:
class Class1:
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4638 次 |
| 最近记录: |