运行 来自另一个 Python 脚本的 setup.py,路径问题,安装在调用脚本目录中?

Run a setup.py from another Python script, path issue, installing in calling script dir?

首先,我发现了如何从 Python 中的另一个脚本中调用脚本,该调用非常有效,但这是我 运行 遇到的问题:

为了在另一台服务器上轻松安装我的 Web 应用程序 (Bottle),我打包了一个 /redist 代表,其中包含 mod_wsgi 和 PyMySQL 源文件。我想要实现的是一种 "setup.py" 文件,它将启动 /mod_wsgi/setup.py 安装文件,与 PyMySQL 安装文件相同。

以下是我为 PyMySQL 所做的示例:

subprocess.call("python3 ./redist/PyMySQL/setup.py install", shell=True)

安装运行良好,但是,当我尝试启动时,我的应用程序目录中出现了一个 /build、一个 /dist 和一个 /PyMySQL.egg-info 文件夹任何导入 PyMySQL 的东西,它告诉我该模块不存在。

如果我手动安装它(我的意思是使用我的终端,比如 cd /redist/PyMySQL/ 然后 py3 setup.py install),效果很好,然后导入就可以了...

有什么想法吗?我做错了什么吗?

提前,谢谢:)

我认为这可以解决您的问题:Python specify popen working directory via argument

我想在“./redist/PyMySQL/”目录中可以用作参数,因为它是 setup.py 所在的位置

试试这个:

subprocess.Popen("py3 setup.py", cwd='/redist/PyMySQL/')

在我这边这行得通:

subprocess.Popen(['py3','setup.py'], cwd='path-of-my-setup')