Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

Tôi muốn cài đặt các mô -đun 'Mutagen' và 'GTTS' cho mã của mình, nhưng tôi muốn có nó để nó sẽ cài đặt các mô -đun trên mọi máy tính không có chúng, nhưng nó sẽ không cố gắng cài đặt chúng nếu Chúng đã được cài đặt. Tôi hiện có:

def install(package):
    pip.main(['install', package])

install('mutagen')

install('gTTS')

from gtts import gTTS
from mutagen.mp3 import MP3

Tuy nhiên, nếu bạn đã có các mô -đun, điều này sẽ chỉ thêm sự lộn xộn không cần thiết để bắt đầu chương trình bất cứ khi nào bạn mở nó.

Khi được hỏi ngày 26 tháng 5 năm 2017 lúc 22:00May 26, 2017 at 22:00

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

FoxesfoxesFoxes

9872 Huy hiệu vàng9 Huy hiệu bạc18 Huy hiệu đồng2 gold badges9 silver badges18 bronze badges

4

Chỉnh sửa - 2020/02/03

Mô -đun

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1 đã cập nhật khá nhiều kể từ khi tôi đăng câu trả lời này. Tôi đã cập nhật đoạn trích với cách thích hợp để cài đặt một phụ thuộc bị thiếu, đó là sử dụng
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
2 và
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
3, chứ không phải
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1.

Để ẩn đầu ra, bạn có thể chuyển hướng đầu ra phụ thuộc DevNull:

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)

Giống như @zwer đã đề cập, các tác phẩm trên, mặc dù nó không được coi là một cách đóng gói thích hợp để đóng gói dự án của bạn. Để xem xét điều này ở độ sâu tốt hơn, hãy đọc trang Cách đóng gói ứng dụng Python.

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 22:07May 26, 2017 at 22:07

GirrafishgirrafishGirrafish

2.0601 Huy hiệu vàng18 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge18 silver badges30 bronze badges

14

Bạn có thể sử dụng đơn giản thử/ngoại trừ:

try:
    import mutagen
    print("module 'mutagen' is installed")
except ModuleNotFoundError:
    print("module 'mutagen' is not installed")
    # or
    install("mutagen") # the install function from the question

Đã trả lời ngày 10 tháng 7 năm 2020 lúc 15:05Jul 10, 2020 at 15:05

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

Matan Hmatan hmatan h

7881 Huy hiệu vàng9 Huy hiệu bạc17 Huy hiệu đồng1 gold badge9 silver badges17 bronze badges

Nếu bạn muốn biết nếu gói được cài đặt, bạn có thể kiểm tra nó trong thiết bị đầu cuối của mình bằng lệnh sau:

pip list | grep <module_name_you_want_to_check>

Làm thế nào điều này hoạt động:

pip list

Danh sách tất cả các mô -đun được cài đặt trong Python của bạn.

Thanh dọc | thường được gọi là một "đường ống". Nó được sử dụng để đặt một lệnh vào một lệnh khác. Đó là, nó hướng đầu ra từ lệnh đầu tiên vào đầu vào cho lệnh thứ hai.

grep <module_name_you_want_to_check>

Tìm từ khóa từ danh sách.

Example:

pip list| grep quant

Liệt kê tất cả các gói bắt đầu bằng "lượng tử" (ví dụ: "QuantStrats"). Nếu bạn không có bất kỳ đầu ra nào, điều này có nghĩa là thư viện không được cài đặt.

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

karel

4.89342 Huy hiệu vàng42 Huy hiệu bạc49 Huy hiệu đồng42 gold badges42 silver badges49 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2019 lúc 8:29Mar 16, 2019 at 8:29

kiểm trajack

2873 Huy hiệu bạc3 Huy hiệu đồng3 silver badges3 bronze badges

3

Bạn có thể kiểm tra xem gói có được cài đặt bằng

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
5 không:

import pkg_resources

for package in ['mutagen', 'gTTS']:
    try:
        dist = pkg_resources.get_distribution(package)
        print('{} ({}) is installed'.format(dist.key, dist.version))
    except pkg_resources.DistributionNotFound:
        print('{} is NOT installed'.format(package))

Lưu ý: Bạn không nên nhập trực tiếp mô-đun

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1 vì đây là trường hợp sử dụng không được hỗ trợ của lệnh
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1.
You should not be directly importing the
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1 module as it is an unsupported use-case of the
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1 command.

Cách sử dụng

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
1 được đề xuất từ ​​chương trình của bạn là thực hiện nó bằng cách sử dụng
import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
2:

subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'my_package'])

Đã trả lời ngày 2 tháng 2 năm 2020 lúc 18:59Feb 2, 2020 at 18:59

Dcolesdcolesdcoles

3.5652 Huy hiệu vàng27 Huy hiệu bạc24 Huy hiệu đồng2 gold badges27 silver badges24 bronze badges

1

Mặc dù câu trả lời của @Girrafish có thể đủ, bạn cũng có thể kiểm tra cài đặt gói thông qua

try:
    import mutagen
    print("module 'mutagen' is installed")
except ModuleNotFoundError:
    print("module 'mutagen' is not installed")
    # or
    install("mutagen") # the install function from the question

0:

import importlib

packages = ['mutagen', 'gTTS']
[subprocess.check_call(['pip', 'install', pkg]) 
for pkg in packages if not importlib.util.find_spec(pkg)]

Đã trả lời ngày 14 tháng 11 năm 2021 lúc 17:23Nov 14, 2021 at 17:23

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

Shayan Amanishayan AmaniShayan Amani

5.3611 Huy hiệu vàng36 Huy hiệu bạc36 Huy hiệu đồng1 gold badge36 silver badges36 bronze badges

1

Bạn có thể sử dụng dòng lệnh:

import sys
import subprocess
import pkg_resources

required = {'mutagen', 'gTTS'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed

if missing:
    python = sys.executable
    subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
0

nó sẽ nói nếu mô -đun tồn tại

Nếu không, bạn chỉ có thể sử dụng thực tiễn tốt nhất:

Pip Freeze> Yêu cầu.txt

Điều đó sẽ đặt các mô -đun mà bạn đã cài đặt Python trong một tệp

và :

pip install -r abiles.txt

để tải chúng

Nó sẽ tự động mục đích của bạn

Chúc vui vẻ

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 22:05May 26, 2017 at 22:05

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

D. Peterd. PeterD. Peter

4873 Huy hiệu bạc12 Huy hiệu Đồng3 silver badges12 bronze badges

Một giải pháp khác để đặt một câu lệnh nhập cho bất cứ điều gì bạn đang cố gắng nhập vào thử/ngoại trừ khối, vì vậy nếu nó hoạt động, nó đã được cài đặt, nhưng nếu không nó sẽ ném ngoại lệ và bạn có thể chạy lệnh để cài đặt nó.

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 22:42May 26, 2017 at 22:42

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

Joseph Longjoseph LongJoseph Long

1931 Huy hiệu vàng2 Huy hiệu bạc10 Huy hiệu đồng1 gold badge2 silver badges10 bronze badges

Nếu bạn muốn xem trước nếu một gói cụ thể (hoặc một số) được cài đặt hoặc không thể bạn có thể sử dụng Idle trong Python. Đặc biệt :

  1. Mở nhàn rỗi
  2. Duyệt đến Tệp> Mở mô -đun> Một số mô -đun
  3. Idle sẽ hiển thị mô -đun hoặc sẽ nhắc thông báo lỗi.

Trên đây được kiểm tra với Python 3.9.0

Đã trả lời ngày 13 tháng 1 năm 2021 lúc 4:18Jan 13, 2021 at 4:18

1

Bạn có thể chạy

try:
    import mutagen
    print("module 'mutagen' is installed")
except ModuleNotFoundError:
    print("module 'mutagen' is not installed")
    # or
    install("mutagen") # the install function from the question

1 hoặc để xem rộng
try:
    import mutagen
    print("module 'mutagen' is installed")
except ModuleNotFoundError:
    print("module 'mutagen' is not installed")
    # or
    install("mutagen") # the install function from the question

2 tham chiếu

Đã trả lời ngày 15 tháng 6 năm 2021 lúc 16:59Jun 15, 2021 at 16:59

Hướng dẫn how do you check if a module is installed in python and if not install it within the code? - làm cách nào để kiểm tra xem một mô-đun đã được cài đặt trong python hay chưa và nếu không cài đặt nó trong mã?

Làm thế nào để tôi biết nếu một mô -đun Python được cài đặt hay không?

Để kiểm tra tất cả các mô -đun Python đã cài đặt, chúng ta có thể sử dụng hai lệnh sau với lệnh 'PIP': sử dụng lệnh 'PIP FREEZE'. Sử dụng lệnh 'Danh sách pip.Using 'pip freeze' command. Using 'pip list command.

Làm cách nào để tìm ra nơi cài đặt mô -đun Python?

Đối với mô -đun Python thuần túy, chúng ta có thể xác định vị trí nguồn của nó bằng Module_Name .__ File__.Điều này sẽ trả về vị trí nơi mô -đun.Tệp PY tồn tại.module_name. __file__. This will return the location where the module's . py file exists.

Làm thế nào để bạn kiểm tra xem một mô -đun Python có tồn tại mà không cần nhập không?

Không có cách nào để kiểm tra một cách đáng tin cậy xem "Mô -đun chấm" có thể nhập mà không nhập gói cha mẹ của nó không.Nói điều này, có nhiều giải pháp cho vấn đề "Làm thế nào để kiểm tra xem một mô -đun Python có tồn tại không".Giải pháp dưới đây giải quyết vấn đề rằng một mô -đun nhập khẩu có thể nâng một nhà nhập khẩu ngay cả khi nó tồn tại.. Saying this, there are many solutions to problem "how to check if a Python module exists". The below solution addresses the problem that an imported module can raise an ImportError even if it exists.

Làm cách nào để sử dụng mô -đun Python mà không cần cài đặt nó?

Nếu bạn không thể cài đặt các mô -đun trên máy (do không có đủ quyền), bạn có thể sử dụng VirtualEnv hoặc lưu các tệp mô -đun trong một thư mục khác và sử dụng mã sau để cho phép Python tìm kiếm các mô -đun trong mô -đun đã cho:>>> nhập hệ điều hành, sys >>> file_path = 'Bổ sung/' >>> sys.use either virtualenv or save the module files in another directory and use the following code to allow Python to search for modules in the given module: >>> import os, sys >>> file_path = 'AdditionalModules/' >>> sys.