我有一个使用 keras 和 tensorflow 库的 python 脚本,在每台机器上设置它们都非常耗时。是否可以将我的 python 脚本以及 keras 和 tensorflow 库导出到一个文件中,如 java 项目 --> .jar 这样我就不需要在每次移动到新机器时都设置这些库?
最佳答案
Python 3 包括 a tool called zipapp
这允许您从 Python 项目构建单个存档,捆绑所有(或部分)依赖项。 该工具仅与 Python 3 捆绑在一起,但生成的存档将适用于您定位的任何版本的 Python >= 2.6。
假设您在 src/
中拥有所有源文件,包括提到的 Tensor Flow 库:
$ python3 -m zipapp -o yourapp.pyz -m "your.entry.point.module:main_function" src/
-m
标志允许您在其中指定一个模块和一个函数,用 :
分隔,当您运行 时将执行它们。 pyz
文件。关于运行它,这只是一个问题:
$ python ./yourapp.pyz
同样,您需要 Python >= 2.6 才能正常工作。
如果您的目标是 unix 平台,您还可以添加一个 shebang:
$ echo "#! /usr/bin/python" > yourapp2.pyz
$ cat yourapp.pyz >> yourapp2.pyz
$ chmod +x yourapp2.pyz
这样您就可以将文件运行为:
$ ./yourapp2.pyz
作为旁注,.pyz
只不过是一个 .zip
文件。您可以自己创建一个没有 zipapp
的文件,只需在顶层包含一个 __main__.py
文件。这将是您的包的入口点。
关于python - 是否可以将 python 及其必要的库导出到与环境无关的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41818387/