Hướng dẫn python try: import except install - python thử: nhập ngoại trừ cài đặt

Giả sử rằng bạn đã cài đặt PIP hoặc Easy_Install trên phân phối Python của mình, tôi muốn biết làm thế nào tôi có thể cài đặt một gói cần thiết trong thư mục người dùng từ bên trong tập lệnh.

Từ những gì tôi biết PIP cũng là một mô -đun Python, vì vậy giải pháp sẽ trông như thế nào:

try:
    import zumba
except ImportError:
    import pip
    # ... do "pip install --user zumba" or throw exception    = 10.0]:

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba

Nhờ @joop, tôi đã có thể đến với câu trả lời thích hợp.

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba

Một nhận xét quan trọng là điều này sẽ hoạt động mà không yêu cầu truy cập gốc vì nó sẽ cài đặt mô -đun trong thư mục người dùng.

Không chắc chắn nếu nó sẽ hoạt động cho các mô-đun nhị phân hoặc các mô-đun sẽ yêu cầu biên dịch, nhưng nó rõ ràng hoạt động tốt cho các mô-đun python tinh khiết.

Bây giờ bạn có thể viết các tập lệnh khép kín và không lo lắng về sự phụ thuộc.

Koterpillar

7.7122 Huy hiệu vàng25 Huy hiệu bạc40 Huy hiệu đồng2 gold badges25 silver badges40 bronze badges

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 9:51Jun 24, 2013 at 9:51

Sorinsorinsorin

154K171 Huy hiệu vàng518 Huy hiệu bạc771 Huy hiệu đồng171 gold badges518 silver badges771 bronze badges

2

Kể từ phiên bản PIP> = 10.0.0, các giải pháp trên sẽ không hoạt động do tái cấu trúc gói nội bộ. Cách mới để sử dụng pip bên trong một tập lệnh bây giờ như sau:

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc

Đã trả lời ngày 26 tháng 7 năm 2018 lúc 6:12Jul 26, 2018 at 6:12

PhoenixphoenixPhoenix

3354 Huy hiệu bạc15 Huy hiệu Đồng4 silver badges15 bronze badges

Tôi muốn lưu ý rằng câu trả lời được chấp nhận hiện tại có thể dẫn đến va chạm tên ứng dụng có thể. Nhập từ không gian tên ứng dụng không cung cấp cho bạn hình ảnh đầy đủ về những gì được cài đặt trên hệ thống.

Một cách tốt hơn sẽ là:

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]

Đã trả lời ngày 26 tháng 8 năm 2016 lúc 18:42Aug 26, 2016 at 18:42

CaseycaseyCasey

3734 Huy hiệu bạc13 Huy hiệu Đồng4 silver badges13 bronze badges

1

Một hàm đơn giản dựa trên các hàm trên lấy tên mô -đun làm chuỗi và trả về mô -đun đã nhập.

def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]

Đã trả lời ngày 22 tháng 10 lúc 22:15Oct 22 at 22:15

m3trikm3trikm3trik

Huy hiệu bạc 19311 silver badge11 bronze badges

Phần này bao gồm những điều cơ bản về cách cài đặt các gói Python.packages.

Điều quan trọng cần lưu ý là thuật ngữ Gói gói trực tuyến trong bối cảnh này đang được sử dụng để mô tả một gói phần mềm sẽ được cài đặt [nghĩa là một từ đồng nghĩa với phân phối]. Nó không đề cập đến loại gói mà bạn nhập vào mã nguồn Python của bạn [nghĩa là một thùng chứa các mô -đun]. Thông thường trong cộng đồng Python để đề cập đến phân phối bằng cách sử dụng thuật ngữ gói gói. Sử dụng thuật ngữ phân phối trực tuyến, thường không được ưu tiên, bởi vì nó có thể dễ dàng bị nhầm lẫn với phân phối Linux hoặc một bản phân phối phần mềm lớn hơn khác như chính Python.distribution]. It does not to refer to the kind of package that you import in your Python source code [i.e. a container of modules]. It is common in the Python community to refer to a distribution using the term “package”. Using the term “distribution” is often not preferred, because it can easily be confused with a Linux distribution, or another larger software distribution like Python itself.

Yêu cầu cài đặt gói

Phần này mô tả các bước cần tuân theo trước khi cài đặt các gói Python khác.

Đảm bảo bạn có thể chạy Python từ dòng lệnh

Trước khi bạn đi xa hơn, hãy chắc chắn rằng bạn có Python và phiên bản dự kiến ​​có sẵn từ dòng lệnh của bạn. Bạn có thể kiểm tra điều này bằng cách chạy:

Bạn sẽ nhận được một số đầu ra như

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
9. Nếu bạn không có Python, vui lòng cài đặt phiên bản 3.x mới nhất từ ​​Python.org hoặc tham khảo phần Cài đặt Python của Hướng dẫn Hitchhiker về Python.Installing Python section of the Hitchhiker’s Guide to Python.

Ghi chú

Nếu bạn là một người mới đến và bạn gặp lỗi như thế này:

>>> python --version
Traceback [most recent call last]:
  File "", line 1, in 
NameError: name 'python' is not defined

Nó có nghĩa là vì lệnh này và các lệnh được đề xuất khác trong hướng dẫn này được dự định sẽ được chạy trong vỏ [còn được gọi là thiết bị đầu cuối hoặc bảng điều khiển]. Xem Python cho người mới bắt đầu bắt đầu hướng dẫn để được giới thiệu về việc sử dụng hệ điều hành của bạn và tương tác với Python.

Ghi chú

Nếu bạn là một người mới đến và bạn gặp lỗi như thế này:

In [1]: import sys
        !{sys.executable} --version
Python 3.6.3

Nó có nghĩa là vì lệnh này và các lệnh được đề xuất khác trong hướng dẫn này được dự định sẽ được chạy trong vỏ [còn được gọi là thiết bị đầu cuối hoặc bảng điều khiển]. Xem Python cho người mới bắt đầu bắt đầu hướng dẫn để được giới thiệu về việc sử dụng hệ điều hành của bạn và tương tác với Python.

Ghi chú

Nếu bạn là một người mới đến và bạn gặp lỗi như thế này:

Nó có nghĩa là vì lệnh này và các lệnh được đề xuất khác trong hướng dẫn này được dự định sẽ được chạy trong vỏ [còn được gọi là thiết bị đầu cuối hoặc bảng điều khiển]. Xem Python cho người mới bắt đầu bắt đầu hướng dẫn để được giới thiệu về việc sử dụng hệ điều hành của bạn và tương tác với Python.

Nếu bạn sử dụng một shell nâng cao như ipython hoặc máy tính xách tay Jupyter, bạn có thể chạy các lệnh hệ thống như các lệnh trong hướng dẫn này bằng cách mở đầu chúng bằng ký tự

def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
0:pip available. You can check this by running:

Nó khuyên bạn nên viết

def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
1 thay vì đơn giản
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
2 để đảm bảo rằng các lệnh được chạy trong cài đặt Python phù hợp với sổ ghi chép hiện đang chạy [có thể không phải là cài đặt Python tương tự mà lệnh
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
2 đề cập đến].Installing pip/setuptools/wheel with Linux Package Managers.

Do cách mà hầu hết các phân phối Linux đang xử lý di chuyển Python 3, người dùng Linux sử dụng Python hệ thống mà không tạo ra môi trường ảo trước tiên sẽ thay thế lệnh

def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
2 trong hướng dẫn này bằng lệnh
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
5 và
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
6 bằng
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
7. Không chạy bất kỳ lệnh nào trong hướng dẫn này với
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
8: Nếu bạn gặp lỗi về quyền, hãy quay lại phần tạo môi trường ảo, đặt một môi trường, và sau đó tiếp tục với hướng dẫn như đã viết.

Unix/macOS

python3 -m ensurepip --default-pip

các cửa sổ

py -m ensurepip --default-pip

Đảm bảo bạn có thể chạy PIP từ dòng lệnh

  • Ngoài ra, bạn sẽ cần đảm bảo rằng bạn có sẵn PIP. Bạn có thể kiểm tra điều này bằng cách chạy:

  • Nếu bạn đã cài đặt Python từ nguồn, với trình cài đặt từ python.org hoặc qua homebrew, bạn đã có PIP. Nếu bạn trên Linux và được cài đặt bằng Trình quản lý gói OS của mình, bạn có thể phải cài đặt riêng PIP, xem Cài đặt PIP/Setuptools/Wheel với Trình quản lý gói Linux.setuptools and wheel if they’re not installed already.

    Nếu

    def pipInstallOnError[module_name]:
        '''Import a module.
        Attempt to pip install the module on ImportError.
    
        :Parameters:
            module_name [str] = The name of the module.
    
        :Return:
            [obj] The imported module.
        '''
        try:
            return __import__[module_name]
        except ImportError as error:
            from pip._internal import main as pip
            pip[['install', '--user', module_name]]
            return __import__[module_name]
    
    9 đã được cài đặt, thì trước tiên hãy thử bootstrap nó từ thư viện tiêu chuẩn:

    Nếu điều đó vẫn không cho phép bạn chạy

    def pipInstallOnError[module_name]:
        '''Import a module.
        Attempt to pip install the module on ImportError.
    
        :Parameters:
            module_name [str] = The name of the module.
    
        :Return:
            [obj] The imported module.
        '''
        try:
            return __import__[module_name]
        except ImportError as error:
            from pip._internal import main as pip
            pip[['install', '--user', module_name]]
            return __import__[module_name]
    
    6:

Tải xuống an toàn get-pip.py 1

Chạy

>>> python --version
Traceback [most recent call last]:
  File "", line 1, in 
NameError: name 'python' is not defined
1. 2 Điều này sẽ cài đặt hoặc nâng cấp PIP. Ngoài ra, nó sẽ cài đặt setuptools và bánh xe nếu chúng chưa được cài đặt.

Unix/macOS

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
0

các cửa sổ

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
1

Tùy chọn, tạo một môi trường ảo là

Xem phần bên dưới để biết chi tiết, nhưng ở đây, lệnh VEN 3 cơ bản sẽ sử dụng trên hệ thống Linux điển hình:section below for details, but here’s the basic venv 3 command to use on a typical Linux system:

Unix/macOS

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
2

các cửa sổ

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
3

Điều này sẽ tạo ra một môi trường ảo mới trong thư mục con

>>> python --version
Traceback [most recent call last]:
  File "", line 1, in 
NameError: name 'python' is not defined
7 và định cấu hình shell hiện tại để sử dụng nó làm môi trường
def pipInstallOnError[module_name]:
    '''Import a module.
    Attempt to pip install the module on ImportError.

    :Parameters:
        module_name [str] = The name of the module.

    :Return:
        [obj] The imported module.
    '''
    try:
        return __import__[module_name]
    except ImportError as error:
        from pip._internal import main as pip
        pip[['install', '--user', module_name]]
        return __import__[module_name]
2 mặc định.

Tạo môi trường ảo

Môi trường ảo Python, cho phép các gói Python được cài đặt ở một vị trí bị cô lập cho một ứng dụng cụ thể, thay vì được cài đặt trên toàn cầu. Nếu bạn đang tìm cách cài đặt các công cụ dòng lệnh toàn cầu một cách an toàn, hãy xem cài đặt các công cụ dòng lệnh độc lập.packages to be installed in an isolated location for a particular application, rather than being installed globally. If you are looking to safely install global command line tools, see Installing stand alone command line tools.

Hãy tưởng tượng bạn có một ứng dụng cần phiên bản 1 của Libfoo, nhưng một ứng dụng khác yêu cầu phiên bản 2. Làm thế nào bạn có thể sử dụng cả hai ứng dụng này? Nếu bạn cài đặt mọi thứ vào /usr/lib/python3.6/site-packages [hoặc bất kể vị trí tiêu chuẩn nền tảng của bạn là gì], thì nó dễ dàng kết thúc trong tình huống bạn vô tình nâng cấp một ứng dụng không nên nâng cấp.

Hoặc nói chung hơn, nếu bạn muốn cài đặt một ứng dụng và để lại? Nếu một ứng dụng hoạt động, bất kỳ thay đổi nào trong thư viện của nó hoặc phiên bản của các thư viện đó có thể phá vỡ ứng dụng.

Ngoài ra, điều gì sẽ xảy ra nếu bạn có thể cài đặt các gói vào thư mục gói trang web toàn cầu? Ví dụ, trên một máy chủ chung.packages into the global site-packages directory? For instance, on a shared host.

Trong tất cả các trường hợp này, môi trường ảo có thể giúp bạn. Họ có thư mục cài đặt riêng và họ không chia sẻ thư viện với các môi trường ảo khác.

Hiện tại, có hai công cụ phổ biến để tạo môi trường ảo Python:

  • VENV có sẵn theo mặc định trong Python 3.3 trở lên, và cài đặt PIP và setuptools vào các môi trường ảo được tạo trong Python 3.4 trở lên. is available by default in Python 3.3 and later, and installs pip and setuptools into created virtual environments in Python 3.4 and later.

  • VirtualEnv cần được cài đặt riêng, nhưng hỗ trợ Python 2.7+ và Python 3.3+, và pip, setuptools và bánh xe luôn được cài đặt vào các môi trường ảo được tạo theo mặc định [bất kể phiên bản Python]. needs to be installed separately, but supports Python 2.7+ and Python 3.3+, and pip, setuptools and wheel are always installed into created virtual environments by default [regardless of Python version].

Việc sử dụng cơ bản là như vậy:

Sử dụng VENV:venv:

Unix/macOS

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
4

các cửa sổ

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
5

Sử dụng VirtualEnv:virtualenv:

Unix/macOS

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
6

các cửa sổ

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
7

Để biết thêm thông tin, hãy xem các tài liệu VETV hoặc tài liệu ảo.venv docs or the virtualenv docs.

Việc sử dụng nguồn dưới các vỏ Unix đảm bảo rằng các biến môi trường ảo được đặt trong vỏ hiện tại và không phải trong một quy trình con [sau đó biến mất, không có tác dụng hữu ích].source under Unix shells ensures that the virtual environment’s variables are set within the current shell, and not in a subprocess [which then disappears, having no useful effect].

Trong cả hai trường hợp trên, người dùng Windows nên sử dụng lệnh nguồn, nhưng nên chạy tập lệnh kích hoạt trực tiếp từ shell lệnh như vậy:source command, but should rather run the activate script directly from the command shell like so:

Quản lý nhiều môi trường ảo trực tiếp có thể trở nên tẻ nhạt, do đó, hướng dẫn quản lý phụ thuộc giới thiệu một công cụ cấp cao hơn, PIPENV, tự động quản lý một môi trường ảo riêng biệt cho mỗi dự án và ứng dụng mà bạn làm việc.dependency management tutorial introduces a higher level tool, Pipenv, that automatically manages a separate virtual environment for each project and application that you work on.

Sử dụng PIP để cài đặt

PIP là trình cài đặt được đề xuất. Dưới đây, chúng tôi sẽ bao gồm các kịch bản sử dụng phổ biến nhất. Để biết thêm chi tiết, hãy xem các tài liệu PIP, bao gồm một hướng dẫn tham khảo đầy đủ. is the recommended installer. Below, we’ll cover the most common usage scenarios. For more detail, see the pip docs, which includes a complete Reference Guide.

Cài đặt từ Pypi¶

Cách sử dụng phổ biến nhất của PIP là cài đặt từ chỉ mục gói Python bằng cách sử dụng trình xác định yêu cầu. Nói chung, một trình xác định yêu cầu bao gồm một tên dự án theo sau là một trình xác định phiên bản tùy chọn. PEP 440 chứa một đặc điểm kỹ thuật đầy đủ của các nhà xác định hiện đang được hỗ trợ. Dưới đây là một số ví dụ.pip is to install from the Python Package Index using a requirement specifier. Generally speaking, a requirement specifier is composed of a project name followed by an optional version specifier. PEP 440 contains a full specification of the currently supported specifiers. Below are some examples.

Để cài đặt phiên bản mới nhất của một số sản phẩm

Unix/macOS

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
8

các cửa sổ

try:
    import zumba
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'zumba']]
    import zumba
9

Để cài đặt một phiên bản cụ thể:

Unix/macOS

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
0

các cửa sổ

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
1

Để cài đặt lớn hơn hoặc bằng một phiên bản và ít hơn một phiên bản khác:

Unix/macOS

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
2

các cửa sổ

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
3

Để cài đặt một phiên bản mà tính năng tương thích với một phiên bản nhất định: 4“compatible” with a certain version: 4

Unix/macOS

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
4

các cửa sổ

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
5

Trong trường hợp này, điều này có nghĩa là để cài đặt bất kỳ phiên bản nào, == 1.4.

Phân phối nguồn so với bánh xe

PIP có thể cài đặt từ một trong hai phân phối nguồn [SDIST] hoặc bánh xe, nhưng nếu cả hai đều có trên PYPI, PIP sẽ thích một bánh xe tương thích. Bạn có thể ghi đè hành vi mặc định của PIP bằng cách ví dụ: Sử dụng tùy chọn nhị phân của nó. can install from either Source Distributions [sdist] or Wheels, but if both are present on PyPI, pip will prefer a compatible wheel. You can override pip`s default behavior by e.g. using its –no-binary option.

Bánh xe là một định dạng phân phối được xây dựng sẵn cung cấp cài đặt nhanh hơn so với phân phối nguồn [SDIST], đặc biệt là khi một dự án chứa các tiện ích mở rộng được biên dịch. are a pre-built distribution format that provides faster installation compared to Source Distributions [sdist], especially when a project contains compiled extensions.

Nếu PIP không tìm thấy một bánh xe để cài đặt, nó sẽ xây dựng một bánh xe và lưu trữ nó để cài đặt trong tương lai, thay vì xây dựng lại phân phối nguồn trong tương lai.pip does not find a wheel to install, it will locally build a wheel and cache it for future installs, instead of rebuilding the source distribution in the future.

Gói nâng cấp

Nâng cấp một

>>> python --version
Traceback [most recent call last]:
  File "", line 1, in 
NameError: name 'python' is not defined
9 đã được cài đặt lên mới nhất từ ​​PYPI.

Unix/macOS

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
6

các cửa sổ

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
7

Cài đặt vào trang web người dùng

Để cài đặt các gói được phân lập cho người dùng hiện tại, hãy sử dụng cờ

In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
0:packages that are isolated to the current user, use the
In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
0 flag:

Unix/macOS

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
8

các cửa sổ

try:
    import zumba
except ImportError:
    import pip
    pip.main[['install', '--user', 'zumba']]
    import zumba
9

Để biết thêm thông tin, hãy xem phần Cài đặt người dùng từ các tài liệu PIP.

Lưu ý rằng cờ

In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
0 không có hiệu lực khi bên trong môi trường ảo - tất cả các lệnh cài đặt sẽ ảnh hưởng đến môi trường ảo.

Nếu

>>> python --version
Traceback [most recent call last]:
  File "", line 1, in 
NameError: name 'python' is not defined
9 xác định bất kỳ tập lệnh dòng lệnh hoặc điểm nhập bảng điều khiển nào,
In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
0 sẽ khiến chúng được cài đặt bên trong thư mục nhị phân của cơ sở người dùng, có thể có hoặc chưa có trong shell của bạn. .
In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
4. [Starting in version 10, pip displays a warning when installing any scripts to a directory outside
In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
4.] If the scripts are not available in your shell after installation, you’ll need to add the directory to your
In [1]: import sys
        !{sys.executable} --version
Python 3.6.3
4:

  • Trên Linux và MacOS, bạn có thể tìm thấy thư mục nhị phân cơ sở người dùng bằng cách chạy

    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    7 và thêm
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    8 vào cuối. Ví dụ: điều này thường sẽ in
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    9 [với
    python3 -m ensurepip --default-pip
    
    0 được mở rộng sang đường dẫn tuyệt đối đến thư mục nhà của bạn] để bạn cần thêm
    python3 -m ensurepip --default-pip
    
    1 vào
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    4 của bạn. Bạn có thể đặt
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    4 vĩnh viễn bằng cách sửa đổi ~/.profile.

  • Trên Windows, bạn có thể tìm thấy thư mục nhị phân cơ sở người dùng bằng cách chạy

    python3 -m ensurepip --default-pip
    
    4 và thay thế
    python3 -m ensurepip --default-pip
    
    5 bằng
    python3 -m ensurepip --default-pip
    
    6. Ví dụ: điều này có thể trả về
    python3 -m ensurepip --default-pip
    
    7 vì vậy bạn sẽ cần phải đặt
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    4 của mình để bao gồm
    python3 -m ensurepip --default-pip
    
    9. Bạn có thể đặt người dùng
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    4 vĩnh viễn trong bảng điều khiển. Bạn có thể cần phải đăng xuất cho các thay đổi
    In [1]: import sys
            !{sys.executable} --version
    Python 3.6.3
    
    4 để có hiệu lực.

Các tập tin yêu cầu Jo

Cài đặt danh sách các yêu cầu được chỉ định trong tệp yêu cầu.Requirements File.

Unix/macOS

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
0

các cửa sổ

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
1

Cài đặt từ VCS¶

Cài đặt một dự án từ VCS trong chế độ có thể chỉnh sửa trên mạng. Để biết sự cố hoàn toàn của cú pháp, hãy xem phần PIP trên hỗ trợ VCS.VCS Support.

Unix/macOS

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
2

các cửa sổ

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
3

Cài đặt từ các chỉ mục khác

Cài đặt từ một chỉ mục thay thế

Unix/macOS

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
4

các cửa sổ

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
5

Tìm kiếm một chỉ mục bổ sung trong quá trình cài đặt, ngoài PYPIPyPI

Unix/macOS

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
6

các cửa sổ

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
7

Cài đặt từ cây SRC cục bộ

Cài đặt từ SRC cục bộ trong chế độ phát triển, tức là theo cách mà dự án dường như được cài đặt, nhưng vẫn có thể chỉnh sửa từ cây SRC.Development Mode, i.e. in such a way that the project appears to be installed, but yet is still editable from the src tree.

Unix/macOS

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
8

các cửa sổ

try: import abc
except ImportError:
    from pip._internal import main as pip
    pip[['install', '--user', 'abc']]
    import abc
9

Bạn cũng có thể cài đặt bình thường từ SRC

Unix/macOS

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
0

các cửa sổ

Cài đặt từ Lưu trữ địa phương

Cài đặt một tệp lưu trữ nguồn cụ thể.

Unix/macOS

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
1

các cửa sổ

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
2

Cài đặt từ một thư mục cục bộ có chứa tài liệu lưu trữ [và không kiểm tra pypi]PyPI]

Unix/macOS

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
3

các cửa sổ

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
4

Cài đặt từ các nguồn khác

Để cài đặt từ các nguồn dữ liệu khác [ví dụ: lưu trữ Amazon S3], bạn có thể tạo một ứng dụng trợ giúp trình bày dữ liệu theo định dạng chỉ mục tuân thủ PEP 503 và sử dụng cờ

py -m ensurepip --default-pip
2 để trực tiếp PIP để sử dụng chỉ mục đó.PEP 503 compliant index format, and use the
py -m ensurepip --default-pip
2 flag to direct pip to use that index.

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
5

Cài đặt Prereleases¶

Tìm các phiên bản tiền phát hành và phát triển, ngoài các phiên bản ổn định. Theo mặc định, PIP chỉ tìm thấy các phiên bản ổn định.

Unix/macOS

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
6

các cửa sổ

import pip

packages = [package.project_name for package in pip.get_installed_distributions[]]

if 'package' not in packages:
    pip.main[['install', 'package']]
7

Bạn có thể cài đặt PIP trong tập lệnh Python không?

Việc sử dụng tập lệnh Python để chạy PIP để cài đặt gói không được hỗ trợ bởi Cơ quan Bao bì Python [PYPA] vì lý do sau: PIP không an toàn cho luồng và được dự định sẽ được chạy như một quy trình duy nhất.Khi chạy như một luồng từ trong tập lệnh Python, PIP có thể ảnh hưởng đến mã không PIP với kết quả không mong muốn. for the following reason: Pip is not thread-safe, and is intended to be run as a single process. When run as a thread from within a Python script, pip may affect non-pip code with unexpected results.

Cài đặt PIP là gì?

Lệnh Cài đặt PIP luôn tìm kiếm phiên bản mới nhất của gói và cài đặt nó.Nó cũng tìm kiếm các phụ thuộc được liệt kê trong siêu dữ liệu gói và cài đặt chúng để đảm bảo rằng gói có tất cả các yêu cầu mà nó cần.looks for the latest version of the package and installs it. It also searches for dependencies listed in the package metadata and installs them to ensure that the package has all the requirements that it needs.

Tại sao Python không thể tìm thấy nhập khẩu của tôi?

Điều này được gây ra bởi thực tế là phiên bản Python mà bạn đang chạy tập lệnh của mình không được cấu hình để tìm kiếm các mô -đun nơi bạn đã cài đặt chúng.Điều này xảy ra khi bạn sử dụng cài đặt sai của PIP để cài đặt các gói.the version of Python you're running your script with is not configured to search for modules where you've installed them. This happens when you use the wrong installation of pip to install packages.

Bài Viết Liên Quan

Chủ Đề