Câu trả lời:
Pip được chạy từ dòng lệnh, không phải trình thông dịch Python. Đây là một chương trình cài đặt các mô-đun, vì vậy bạn có thể sử dụng chúng từ Python. Khi bạn đã cài đặt mô-đun, sau đó bạn có thể mở shell Python và làmimport selenium
.
Shell Python không phải là một dòng lệnh, nó là một trình thông dịch tương tác. Bạn gõ mã Python vào nó, không phải lệnh.
pip
sẽ nằm trong thư mục script của cài đặt python của bạn, vì vậy bạn sẽ muốn thêm nó vào đường dẫn của mình. Thêm C:\Python32\scripts
vào của bạn PATH
. Thay đổi đường dẫn khi cần thiết dựa trên nơi bạn đã cài đặt nó.
Sử dụng dòng lệnh, không phải vỏ Python (DOS, PowerShell trong Windows).
C:\Program Files\Python2.7\Scripts> pip install XYZ
Nếu bạn đã cài đặt Python vào PATH của mình bằng các trình cài đặt mới nhất, bạn không cần phải ở trong thư mục đó để chạy pip
Thiết bị đầu cuối trong Mac hoặc Linux
$ pip install XYZ
PATH
. Tôi đã phải làm điều này bằng tay, chỉ vào đường dẫn cài đặt trong%APPDATA%
Vì @sinoroc đã đề xuất cách cài đặt gói chính xác qua pip đang sử dụng quy trình riêng vì pip có thể gây ra việc đóng luồng hoặc có thể yêu cầu khởi động lại trình thông dịch để tải gói đã cài đặt mới, vì vậy đây là cách sử dụng API đúng: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])
nhưng vì Python cho phép để truy cập API nội bộ và bạn biết những gì bạn đang sử dụng API cho bạn có thể muốn sử dụng API nội bộ, ví dụ: nếu bạn đang xây dựng trình quản lý gói GUI riêng với khả năng phục hồi thay thế như https://www.lfd.uci.edu/~gohlke/pythonlibs/
Theo dõi tâm hồn là HẾT NGÀY, thay vì hạ thấp đề xuất cập nhật. xem https://github.com/pypa/pip/issues/7498 để tham khảo.
get_installed_distributions()
hoặc main
phương pháp dưới import pip
thay vì sử dụng import pip._internal as pip
.
CẬP NHẬT ca. v.18 get_installed_distributions()
đã được gỡ bỏ. Thay vào đó, bạn có thể sử dụng trình tạo freeze
như thế này:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
Nếu bạn cần cập nhật mọi gói đã cài đặt, hãy sử dụng như sau:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
Nếu bạn muốn dừng cài đặt các gói khác nếu bất kỳ cài đặt nào không thành công, hãy sử dụng nó trong một pip.main([])
cuộc gọi duy nhất :
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
Lưu ý : Khi bạn cài đặt từ danh sách trong tệp có -r
/ --requirement
tham số, bạn KHÔNG cần hàm open ().
pip.main(['install', '-r', 'filename'])
Cảnh báo : Một số tham số đơn giản --help
có thể khiến trình thông dịch python dừng lại.
Tò mò: Bằng cách sử dụng, pip.exe
bạn thực sự sử dụng trình thông dịch python và mô-đun pip. Nếu bạn giải nén pip.exe
hoặc pip3.exe
bất kể đó là python 2.x hay 3.x, bên trong là tệp CÙNG __main__.py
:
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Để chạy pip trong Python 3.x, chỉ cần làm theo các hướng dẫn trên trang của Python: Cài đặt Mô-đun Python .
python -m pip install SomePackage
Lưu ý rằng điều này được chạy từ dòng lệnh chứ không phải shell python (lý do lỗi cú pháp trong câu hỏi ban đầu).
Ban đầu tôi cũng gặp phải vấn đề tương tự, tôi đã cài đặt python và khi tôi chạy pip
lệnh, nó đã sử dụng để ném cho tôi một lỗi như trong hình bên dưới.
Đảm bảo đường dẫn pip được thêm vào trong các biến môi trường. Đối với tôi, đường dẫn cài đặt python và pip là ::
Python: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
Cả hai đường dẫn này đã được thêm vào đường dẫn trong các biến môi trường.
Bây giờ Mở một cửa sổ cmd mới và gõ pip, bạn sẽ thấy một màn hình như bên dưới.
Bây giờ gõ pip install <<package-name>>
. Ở đây tôi đang cài đặt trình gián điệp gói để câu lệnh dòng lệnh của tôi sẽ như pip install spyder
và đây là màn hình đang chạy của tôi ..
và tôi hy vọng chúng ta đã hoàn thành việc này !!
bạn cần gõ nó trong cmd chứ không phải trong IDLE. bởi vì IDLE không phải là một dấu nhắc lệnh nếu bạn muốn cài đặt một cái gì đó từ IDLE gõ này
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
đây là cách gọi pip như pip <commands>
trong terminal. Các lệnh sẽ được phân tách bằng khoảng trắng mà bạn đang thực hiện ở đó.
ImportError: cannot import name main
sử dụng pip v19.0.3
Lập trình, sau đây hiện đang hoạt động. Tôi thấy tất cả các câu trả lời bài 10.0 và tất cả, nhưng không ai trong số chúng là con đường chính xác cho tôi. Chắc chắn trong Kaggle, apporach này hoạt động
from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade'])
Hãy thử nâng cấp pip với lệnh dưới đây và thử lại
python -m pip install -U pip