如何打包 Python 模块

How to package a Python module

我是 Python 的新手,我一直在做 LPTHW 中的练习:
http://learnpythonthehardway.org/book/ex46.html

作者对打包的解释很含糊,于是研究了一下,最后还是有一些疑问。

首先,如果您有一个导入另一个模块的模块会怎样?您是将导入的模块放入包含第一个模块的目录的子目录中,还是放入根目录中的另一个单独目录中?

其次,一旦安装了整个软件包,您如何运行bin 文件夹中的任何脚本?

Firstly, what happens if you have a module that imports another module? Do you put the module that is imported into a subdirectory of the directory containing the first module, or in another separate directory in the root?

模块只是一个包含 Python 代码的文件 - 您不需要将其放在单独的目录中。最简单的选择是将文件放在包含将执行导入的模块的同一目录中。

如果你把它放在其他目录 而那个目录不是包 你将根本无法导入它(除非你手动弄乱 PYTHONPATH 你不应该这样做)。

Secondly, once you have installed the entire package how do you run any scripts that are in the bin folder?

执行此操作的方法是使用 console_scriptssetup.py 文件中为您的应用程序指定脚本。这样,当你的包被安装时,你的脚本将被正确构建并放置在目标平台上的正确目录中,这样你就可以直接执行它们(无需知道它们在文件系统中的位置)。

例如,您可以浏览 setup.py file for the django project.

如果您要安装包,则无需知道实际脚本所在的位置 - 只需安装包并直接从提示符处执行命令即可。