【问题标题】:How to install modules locally from python code如何从 python 代码本地安装模块
【发布时间】:2020-04-21 13:18:15
【问题描述】:

我有一些python代码test.py

它导入了一些模块,例如import numpy as np

我希望能够使用 python test.py 运行此代码

但是它失败了,因为模块 numpy 没有安装。

是否可以在 python 代码中添加一行以自动安装尚未安装的模块?

此外,是否可以将模块安装在本地文件夹中的 test.py 文件中,就像 c++ 中的 .dll 一样

谢谢

【问题讨论】:

  • 您可以始终使用os.system("pip install numpy")os.system("python -m pip install numpy")。最终你可以import pip,因为它是 Python 模块,然后你在代码中使用它。但要了解更多详细信息,您必须查找 pip 模块的文档
  • 谢谢,喜欢的话可以发帖回答

标签: python


【解决方案1】:

你可以一直使用

os.system("pip install numpy") 

os.system("python -m pip install numpy"). 

或模块subprocess中的一些功能以更好地控制它。

import subprocess

subprocess.run("python -m pip install numpy", shell=True)

您可以为此使用try/except

try
    import numpy
except:
    os.system("python -m pip install numpy")
    import numpy

最终您可以import pip,因为它是 Python 模块,然后您可以在代码中使用它。但要了解更多详细信息,您必须查找 pip 模块的文档


顺便说一句:我在Installing python module within code 中找到了import pip 的示例

【讨论】:

  • 使用 subprocess.run 和 os.system 有什么区别吗?
  • 使用模块subprocess中的功能可以更好地控制它。您可以获得输出或错误代码。
  • 对不起,你说的控制得更好是什么意思?
  • 使用output = subprocess.check_output(),您可以将显示的文本分配给变量output,并且您可以将其保存在日志文件中以保存信息,如果三个安装有问题 - 用户可以稍后查看。使用exit_code = subprocess.call(),您可以获得返回一些程序的代码,以识别运行程序是否有问题。
【解决方案2】:

通常,当您使用 python 的虚拟环境 (Virtualenv) 时,它会将这些库本地安装在特定文件夹中。

您可以在stackoverflow answer 中了解更多信息。

要安装任何库,您可以执行以下操作:

import os # This step is important
os.system("pip install yourModule")

如果模块不存在,这将安装模块! (ps:如果已经存在,它不会抛出任何错误,因此也不需要错误处理!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-02
    • 2019-11-10
    • 2016-03-14
    • 2014-10-02
    • 2018-05-19
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多