python - 导入前安装模块

标签 python import module installation

我想知道是否可以使用我的 python 脚本在尝试导入模块之前安装它。当我现在运行我的脚本时,它会尝试导入模块(当然),但我希望它安装模块,然后检查它是否可以导入它。

更新 1

这是我的安装脚本,我想在运行脚本时使用它来安装它:

def install():
print("\nChecking for dependencies, please stand by...")
with hideInfo():
    if str(os.name) == 'nt':
        easy_install.main(['textract'])
        pip.main(['install', 'logging'])
        pip.main(['install', 'datetime'])
    else:
        pip.main(['install', 'textract'])
        pip.main(['install', 'logging'])
        pip.main(['install', 'datetime'])

time.sleep(1)
menu()

最佳答案

当然可以。

  1. Install programmatically ,然后尝试导入(而不是从命令行安装)

  2. 如果它已经是程序化的,只需将导入语句添加到现有安装脚本的末尾即可


# normal installation routine
try:
    import foobar        
except ImportError:
   panic()
  1. > Call an external install command in python (sudo apt-get install python-foobar,例如)

需要考虑的事项

  • 通常,要安装软件包,您需要提升权限或使用 sudo 权限。您可能不希望 python 运行时的其余部分也具有这些功能,因此单独安装可以避免危险(例如,如果您正在进行文件处理)
  • 如果安装失败,大多数安装脚本都会报告。进行额外检查本身并不是有用的。
  • 在未经他人许可的情况下安装东西可能会让他们感到厌烦。如果您要分发此脚本,我建议您不要这样做。我不希望我下载的包覆盖我的 numpy 发行版,因为它认为这是个好主意
  • 如果您将它安装到本地目录,然后尝试从本地目录导入,这不一定是一个很好的指标,表明您的整个计算机都可以访问已安装的包。这可能是也可能不是问题

关于python - 导入前安装模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35180235/

相关文章:

Python ctypes 用法传递指针

python - 如何使用 Python 使用 Selenium 抓取 Linkedin 上的“下一步”按钮?

Python 使导入语句独立于确切位置

mysql - 将 CSV 导入 MySQL 和

python - 什么是安装 Python 模块或包?

perl - 如何为 CGI 脚本设置 Perl 的 @INC?

python - 使用 seaborn 为数据框绘制直方图

python - 为什么从字符串转换而来的 python float 与具有相同值的普通 float 不同?

objective-c - 在 Objective-C 接口(interface)中 #import 是否总是不合适?

azure - 我是否必须在 powershell runbook (azure) 中导入模块?