自行创建的模块不可调用
self created module not callable
我正在尝试创建一个 python 包,因此在创建包含我所有文件(包括 __init__.py
文件)的文件夹后,我将该文件夹移至 /usr/local/lib/python3.8/site -包/.
当我尝试使用 import ClockTower
(文件夹名称)它 returns 和
Exception has occurred: ModuleNotFoundError
No module named 'ClockTower'
我做错了什么?
您无法import ClockTower
成功的原因是您还没有真正安装它。
distutils
如果包仅供个人在您自己的机器上使用,我建议使用 distutils
创建一个简单的 setup.py
脚本来安装您的包 - distutils
通常是作为内置包分发,但是基于 Debian 的系统默认情况下可能没有它 (see here)。
Here 是一些关于创建 setup.py
脚本的分步文档,使您能够在整个系统中安装和使用您的包。
如果你只是想要一个快速和最小的解决方案,首先创建一个新目录,然后在这个文件夹中创建一个名为 setup.py
的文件,将包含包 files/code 的目录也放在里面。
您的封闭文件夹应如下所示 - 为清楚起见,此处省略了 ClockTower
中的附加 files/directories。
/home/usr/Desktop/EnclosingDir
├───setup.py
│
└───ClockTower
└───__init__.py
setup.py
应该看起来像这样来定义 ClockTower
包的基本安装。
from distutils.core import setup
setup(
name='ClockTower',
version='1.0.0',
packages=['ClockTower'],
)
要安装您的包以供指定的解释器使用(此处 python3.8
),只需导航到包含 setup.py
和 运行.
的封闭文件夹
python3.8 -m pip install .
您应该会看到一些控制台输出,如果安装成功,当您 运行 python3.8 -m pip list
并且能够成功 import ClockTower
使用时,您应该会看到 ClockTower 1.0.0
列出这个解释器。
重要说明: 这种方法不考虑 ClockTower
的任何外部依赖性(例如非内置 packages/modules),它假设这些将由口译员提供 - 例如已经使用类似 requirements.txt
安装程序的方式安装。
setuptools
setuptools
是一个功能更齐全的库,用于分发 Python 包。这种丰富的功能是以增加complexity/time学习和实施为代价的。
如果您要与其他人共享此包,我建议您查看 setuptools
user guide 并继续创建一个强大且可移植的包分发。
我正在尝试创建一个 python 包,因此在创建包含我所有文件(包括 __init__.py
文件)的文件夹后,我将该文件夹移至 /usr/local/lib/python3.8/site -包/.
当我尝试使用 import ClockTower
(文件夹名称)它 returns 和
Exception has occurred: ModuleNotFoundError
No module named 'ClockTower'
我做错了什么?
您无法import ClockTower
成功的原因是您还没有真正安装它。
distutils
如果包仅供个人在您自己的机器上使用,我建议使用 distutils
创建一个简单的 setup.py
脚本来安装您的包 - distutils
通常是作为内置包分发,但是基于 Debian 的系统默认情况下可能没有它 (see here)。
Here 是一些关于创建 setup.py
脚本的分步文档,使您能够在整个系统中安装和使用您的包。
如果你只是想要一个快速和最小的解决方案,首先创建一个新目录,然后在这个文件夹中创建一个名为 setup.py
的文件,将包含包 files/code 的目录也放在里面。
您的封闭文件夹应如下所示 - 为清楚起见,此处省略了 ClockTower
中的附加 files/directories。
/home/usr/Desktop/EnclosingDir
├───setup.py
│
└───ClockTower
└───__init__.py
setup.py
应该看起来像这样来定义 ClockTower
包的基本安装。
from distutils.core import setup
setup(
name='ClockTower',
version='1.0.0',
packages=['ClockTower'],
)
要安装您的包以供指定的解释器使用(此处 python3.8
),只需导航到包含 setup.py
和 运行.
python3.8 -m pip install .
您应该会看到一些控制台输出,如果安装成功,当您 运行 python3.8 -m pip list
并且能够成功 import ClockTower
使用时,您应该会看到 ClockTower 1.0.0
列出这个解释器。
重要说明: 这种方法不考虑 ClockTower
的任何外部依赖性(例如非内置 packages/modules),它假设这些将由口译员提供 - 例如已经使用类似 requirements.txt
安装程序的方式安装。
setuptools
setuptools
是一个功能更齐全的库,用于分发 Python 包。这种丰富的功能是以增加complexity/time学习和实施为代价的。
如果您要与其他人共享此包,我建议您查看 setuptools
user guide 并继续创建一个强大且可移植的包分发。