【发布时间】:2021-01-07 21:57:00
【问题描述】:
我有一个脚本,我想在其他机器上分发,但是它有一个不属于 python 标准库的依赖模块。更具体地说,我想使用 pymysql 库。当我在本地机器上时,我可以只使用 pip install pymysql,但想知道在打包/分发我的脚本时是否还有其他选项,以便其他人不必运行 pip install pymysql。
我目前在其他机器上的错误是: ImportError: 没有名为 pymysql 的模块
【问题讨论】:
我有一个脚本,我想在其他机器上分发,但是它有一个不属于 python 标准库的依赖模块。更具体地说,我想使用 pymysql 库。当我在本地机器上时,我可以只使用 pip install pymysql,但想知道在打包/分发我的脚本时是否还有其他选项,以便其他人不必运行 pip install pymysql。
我目前在其他机器上的错误是: ImportError: 没有名为 pymysql 的模块
【问题讨论】:
您可以在 setup.py 文件中定义依赖项。尝试做这样的事情:
setup(..., install_requires=['pymysql'])
如果您使用setuptools 来打包您的库。这是一些文档:https://python-packaging.readthedocs.io/en/latest/dependencies.html
这个问题可能对你有更多帮助:How to specify dependencies when creating the setup.py file for a python package
这样做,如果有人安装了你的库,它也会自动安装所有依赖项。
如果您需要为 GitHub 存储库定义依赖项,您可以定义一个 requirements.txt 文件并将其与存储库中的主要代码一起保存(而不是在任何文件夹中)。这就是你的样子:
pymysql
这只是包含要求的 1 行。如果还有更多,只需在下一行输入:
pymysql
numpy
pandas
如果有人克隆您的存储库,他们将需要在他们克隆文件的目录中执行以下命令:
python3 -m pip install -r requirements.txt
【讨论】:
requirements.txt 文件为 GitHub 存储库定义依赖项。我会将此添加到我的答案中。