我正在尝试制作一个Python
可以从各种不同计算机上的 USB 驱动器运行的应用程序。让我们假设客户端计算机安装了 Python并将其放在一边。
我的应用程序用于cherrypy
启动a local web server
,但可以安全地假设它尚未安装在运行它的计算机上。
尽可能透明地解决这个问题的最佳方法是什么?
它应该可供非技术用户使用,他们不必担心自己安装任何依赖项。
目前,我已将 的副本cherrypy source
与我的应用程序打包在一起,如果程序检测到它尚未安装,它会运行setup.py
但与--user flag
,避免任何权限问题。
这似乎不是很好的做法。
是否可以只在我的应用程序中包含构建的包?我尝试过使用以下方法来执行此操作:
/myapp/libs/cherrypy
我cherrypy
从CherryPy archive
. 这是预构建,因此可能无法正常工作。我还尝试了另一种运行方式setup.py
(它创建了一个构建目录)并复制了这些文件。
/myapp/somefile.py
import myapp.libs.cherrypy as cherrypy
从理论上讲,这应该有效......但它没有。当我尝试运行服务器(使用cherrpy.quickstart()
)时,它会运行两个服务器实例,这显然会导致问题。
所以,问题是:首先,我是不是完全走错了路?如何使第三方包可用于我的应用程序?