我有一个简单的 python shell 脚本(没有 gui),它使用了几个依赖项(请求和 BeautifulfSoup4)。
我想在多台计算机上共享这个简单的脚本。每台计算机都已经安装了 python,并且它们都是 Linux 驱动的。
此时,在我的开发环境中,应用程序在一个包含所有依赖项的 virtualenv 中运行。
有什么方法可以与所有依赖项共享此应用程序,而无需使用 pip 安装它们?我想跑python myapp.py
就跑。
我有一个简单的 python shell 脚本(没有 gui),它使用了几个依赖项(请求和 BeautifulfSoup4)。
我想在多台计算机上共享这个简单的脚本。每台计算机都已经安装了 python,并且它们都是 Linux 驱动的。
此时,在我的开发环境中,应用程序在一个包含所有依赖项的 virtualenv 中运行。
有什么方法可以与所有依赖项共享此应用程序,而无需使用 pip 安装它们?我想跑python myapp.py
就跑。
您将需要使用bbfreeze或pyinstaller 之类的东西创建一个单文件可执行文件,或者将您的依赖项(假设它们是纯 python)捆绑到一个.zip
文件中,然后将其作为您的 PYTHONPATH(例如:)PYTHONPATH=deps.zip python myapp.py
。
更好的解决方案是创建一个setup.py文件并使用 pip。如果您不希望这些机器访问外部世界,您的 setup.py 文件可以创建文件或 repos 的依赖链接。请参阅此相关问题。
只要您使 virtualenv 可重定位(--relocatable
在其原始位置使用选项),您就可以直接复制整个 virtualenv。如果你创建它--copy-only
(你需要修补 virtualenv 中的错误),那么你甚至不需要在目标机器的其他地方安装 python。
或者,查看http://guide.python-distribute.org/并学习如何创建鸡蛋或轮子。然后可以通过python直接运行一个鸡蛋。
我没有测试你的特殊情况,但你可以在 github 之类的网站上找到源代码(镜像或原始)。
例如,对于 BeautifulSoup,您可以在此处找到代码。
您可以将代码放入同一个文件夹(可能重命名是个好主意,以免调用现有包)。请注意,您不会收到任何更新。