如何安装Python包而不需要任何库要求。

huangapple go评论92阅读模式
英文:

How do i install python packages without any lib requirements

问题

I am writing a Speech-to-Text script right now and it needs A TON of python librarys. This script has to be useable on every PC you start it on, so i need automation for the installation of these libs. I don't want to make the installation through another script in what ever language (batch, vbs, bash, ...) there is but in python.

My Problem:
I can't find any information about how to check if a package is installed or not without using some python librarys (that are most likly not installed).
Some use subprocess, others importlib but all of them are not installed by default when installing python

code should look like:

#1

try:
    import package
except ImportError:
    (code that installes the package)

#2 Even better would be a loop

for x in package_list:
    try:
    import x
except ImportError:
    (code that installes the package)
英文:

I am writing a Speech-to-Text script right now and it needs A TON of python librarys. This script has to be useable on every PC you start it on, so i need automation for the installation of these libs. I don't want to make the installation through another script in what ever language (batch, vbs, bash, ...) there is but in python.

My Problem:
I can't find any information about how to check if a package is installed or not without using some python librarys (that are most likly not installed).
Some use subprocess, others importlib but all of them are not installed by default when installing python

code should look like:

#1

try:
    import package
except ImportError:
    (code that installes the package)

#2 Even better would be a loop

for x in package_list:
    try:
    import x
except ImportError:
    (code that installes the package)

答案1

得分: 0

我自己找到了答案,想与大家分享。

在Python中自动安装包而不使用其他额外的库的方法是只使用Python的标准库与os包。

我们可以使用类似pip install {package}的命令,并使用os.system(command)来运行它。

从3.4版本开始,Pip是独立安装的,所以不会有问题。可以通过使用tryexcept来自动检查包是否已安装。

try:
    import numpy
except ImportError:
    os.system("pip install numpy")
    import numpy

更好的方法是使用一个requirements.txt文件,这样我们只需运行os.system("pip install -r requirements.txt")即可。

英文:

So i found the answer myself and wanted to share it with you all.

The way to automate installing packages in python without other additional librarys is to just use the standard library of python with the package os.

We can use a command like pip install {package} and run it with os.system(command).

Pip is installed standalone from version 3.4 upwards so there is no problem with that. Knowing if a package is installed can be automated with raising the error through a try except

try:
    import numpy
except ImportError:
    os.system("pip install numpy")
    import numpy

Even better would be a requirements.txt file, so that we can just do os.system("pip install -r requirements.txt")

答案2

得分: -1

为了检查Python包是否已安装,而不依赖于额外的库,您可以尝试导入该包并处理ImportError异常。如果包未安装,将引发ImportError,允许您执行安装代码。以下是一个示例:

import importlib

def install_package(package_name):
    import subprocess
    subprocess.check_call(["pip", "install", package_name])

def check_and_install(package_name):
    try:
        importlib.import_module(package_name)
        print(f"{package_name} 已经安装。")
    except ImportError:
        print(f"{package_name} 未安装。正在安装...")
        install_package(package_name)

# 要检查和安装的包列表
package_list = ["numpy", "pandas", "matplotlib"]

# 遍历包列表
for package in package_list:
    check_and_install(package)

在这个代码中,check_and_install 函数尝试使用 importlib.import_module 导入指定的包。如果导入成功,它会打印一条消息,说明该包已经安装。否则,它会打印一条消息,指示该包未安装,并继续调用 install_package 函数,使用 pip 安装该包。

请注意,这种方法假定系统上已安装了 pip。如果您需要处理 pip 不可用的情况,您可能需要根据操作系统考虑替代的安装方法或包管理器。

英文:

To check if a Python package is installed without relying on additional libraries, you can try importing the package and handle the ImportError exception. If the package is not installed, the ImportError will be raised, allowing you to execute the installation code. Here's an example:

import importlib

def install_package(package_name):
    import subprocess
    subprocess.check_call(["pip", "install", package_name])

def check_and_install(package_name):
    try:
        importlib.import_module(package_name)
        print(f"{package_name} is already installed.")
    except ImportError:
        print(f"{package_name} is not installed. Installing...")
        install_package(package_name)

# List of packages to check and install
package_list = ["numpy", "pandas", "matplotlib"]

# Loop over the package list
for package in package_list:
    check_and_install(package)

In this code, the check_and_install function attempts to import the specified package using importlib.import_module. If the import is successful, it prints a message stating that the package is already installed. Otherwise, it prints a message indicating that the package is not installed and proceeds to call the install_package function to install the package using pip.

Note that this approach assumes that pip is installed on the system. If you need to handle cases where pip is not available, you may need to consider alternative installation methods or package managers depending on the operating system.

huangapple
  • 本文由 发表于 2023年6月26日 17:28:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/76555363.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定