【发布时间】:2021-07-13 23:12:44
【问题描述】:
要安装包含 setup.py 文件的软件包,通常你 cd 进入 setup.py 所在的根目录,然后运行以下命令:
python setup.py install
现在我的问题是我正在为另一个应用程序构建一个插件,虽然我可以通过以下代码安装“普通”包:
subprocess.run([sys.executable, "-m", "pip", "install", package])
我还必须安装几个定制的软件包,如果我尝试这样做:
subprocess.run([sys.executable, "-m", "/MSN-Point-Cloud-Completion-master/emd/setup.py", "install"])
我收到以下错误:Error while finding module specification for 'MSN-Point-Cloud-Completion-master/emd/setup.py' (ModuleNotFoundError: No module named 'MSN-Point-Cloud-Completion-master/emd/setup')
让我烦恼的是,如果我手动 cd 进入目录并简单地从 cmd 运行python setup.py install,它就可以正常工作。
所以问题似乎在于将相对路径传递给 setup.py 文件,但正如我所说,考虑到这是一个插件,我需要从代码中安装 setup.py。有什么解决办法吗?
【问题讨论】:
-
一个建议是在命令中设置该目录上的 python 路径,即 subprocess.run([sys.executable, "-m", "PYTHONPATH="/MSN-Point-Cloud-Completion-master /emd/", "/MSN-Point-Cloud-Completion-master/emd/setup.py", "install"])
-
以斜杠开头的路径被解释为绝对路径(从根开始)。试试
"MSN-Point-Cloud-Completion-master/emd/setup.py"。
标签: python python-3.x