Cài đặt Pip-3.2 trên Cygwin


84

Tôi đã cài đặt Python 3 trên Cygwin. Tuy nhiên, tôi không thể cài đặt các gói Python 3 qua pip. Có cách nào để làm việc này không?


1
tại sao không? bạn đã cài đặt pip cho cài đặt python này chưa? lỗi gì bạn nhận được?
mata

Pip đã được cài đặt, nhưng nó cài đặt phiên bản python 2 của gói. Ví dụ: tập lệnh của tôi yêu cầu trả về pyyaml ImportError: No module named yaml, ngay cả sau khi chạy thành công pip install pyyaml.
David Y. Stephenson

1
Sau đó, piptập lệnh không chạy với phiên bản python chính xác. Hãy thử /path/to/python3 -m pip install ...thay thế. Ngoài ra, hãy kiểm tra shebang của tập lệnh pip.
mata

@mata FYI, Python 2 cũng được cài đặt. usr/bin/python3 -m pip install pyyamllợi nhuận /usr/bin/python3: No module named pip. Vì vậy, câu hỏi ban đầu của tôi; làm thế nào để cài đặt pip-3 trên cygwin?
David Y. Stephenson

1
python3 -m ensurepippython2 -m ensurepip. Nhìn python.org/dev/peps/pep-0453
gavenkoa

Câu trả lời:


128

1) Trong khi cài đặt cygwin, hãy đảm bảo bạn cài đặt python / python-setuptools từ danh sách. Điều này sẽ cài đặt gói "easy_install".

2) Nhập lệnh sau:

easy_install-a.b pip   

Bạn phải thay thế a.bbằng phiên bản python của mình có thể là 2.7 hoặc 3.4 hoặc bất kỳ phiên bản nào khác.


4
Câu trả lời này làm việc tuyệt vời cho tôi. Tôi phải thực hiện thêm một số bước vì tôi làm việc tại một trường đại học: Đầu tiên, tôi điều hướng đến đường dẫn cài đặt của mình (c: / cygwin64 / bin /). Tự động sau đó đã hoàn toàn giúp tôi tìm tập tin dễ dàng cài đặt tên hơi differnt: easy_install 2.7.9
Protomancer

6
Tôi đã làm điều này để kết thúc trong tình trạng không có trứng:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile

6
đối với python3, hãy sử dụng gói python3 & python3-setuptools . Rõ ràng là vậy, nhưng người ta có thể quên về python 3 -setuptools
simon

2
Và đừng quên phiên bản (tức là -2.7). Tôi có một bản phân phối python khác trên máy tính của mình và 'easy_install' đã gọi bản phân phối đó thay vì cygwin.
jtbr

44

Nếu bạn có nhiều hơn một bản cài đặt python, thì bạn cần phải cài đặt pip (và có thể là cả setuptools) cho từng cài đặt riêng biệt.
Để làm như vậy, trước tiên bạn có thể tải xuống ez_setup.pyvà chạy nó với python3:

/usr/bin/python3 ez_setup.py

Điều đó sẽ cài đặt setuptools và cũng tạo một easy_installtập lệnh cho phiên bản python của bạn, ví dụ: /usr/bin/easy_install-3.2bạn có thể sử dụng để cài đặt pip:

/usr/bin/easy_install-3.2 pip

Thao tác này sẽ cài đặt pip vào thư mục gói trang web python3 của bạn và một lần nữa tạo một tập lệnh /usr/bin/pip-3.2, mà bạn có thể sử dụng để cài đặt các gói cho phiên bản python này.

Ngoài ra, bạn có thể làm theo hướng dẫn cài đặt tại đâytại đây .


2
Thông minh! Tôi đã có thể giải quyết vấn đề cygwin của mình sau câu trả lời này.

Tôi nhận được "OSError: [Errno 13] Quyền bị từ chối" lỗi này khi cài đặt trong cygwin. Tôi có quyền quản trị trong máy đó.
arulraj.net

2
Liên kết tới ez_setup.py đã chết
spartygw

29

Tôi nghĩ rằng các hướng dẫn cài đặt thay thế được liên kết bởi mata là đơn giản nhất:

Để cài đặt pip, hãy tải xuống get-pip.py một cách an toàn .

Sau đó chạy phần sau (có thể yêu cầu quyền truy cập của quản trị viên):

python get-pip.py

2
fwiw, điều này dường như làm âm thầm không có gì dưới Cygwin - không chắc chắn lý do tại sao :(
Anthony Sottile

2
Công trình thuộc Babun, trên Windows 10 x64
xizdaqrian

15

Vì OP nói cụ thể về Python3, tôi nghĩ chúng ta cần chỉ định rằng chỉ trong trường hợp người dùng đã cài đặt Python2, điều này rất có thể xảy ra.

# If you don't have Python3 already, use apt-cyg:
apt-cyg install python3

# First update pip, pip2 
pip2 install --upgrade pip 

# Install pip3:
python3 -m ensurepip

# Finally update pip3:
pip3 install --upgrade pip

$ pip3 -V
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4)

BTW. Có một số nhánh của apt-cyg , nhưng tốt nhất được duy trì là của kou1okada , bạn sẽ thích nó.


CHỈNH SỬA: 2018-11-15

Bởi vì tôi bắt đầu không sử dụng virtualenv , gần đây tôi đã phải làm mới bản cài đặt Cygwin Python3 của mình và nhận ra một số điều trong quá trình này lẽ ra phải rõ ràng, nhưng có thể dễ dàng bị quên.

  • Khi cài đặt và sử dụng Python3 trên Cygwin (và có thể trên hầu hết các bản phân phối * nix khác), chỉ cài đặt trình thông dịch Python3 cơ bản dưới dạng gói Cygwin. Từ đó trở đi, chỉ sử dụng trình cài đặt pip .

  • Sau khi bạn đã cài đặt hoặc cập nhật bất kỳ gói python3 nào bằng pip , trình quản lý gói Cygwin của bạn sẽ phàn nàn rằng gói của bạn bị như vậy "Incomplete". Đó là vì pip đã thay thế / cập nhật các tệp trong gói đó. Kiểm tra với: cygcheck.exe -c |grep Incomplete.
    Không cài đặt lại các gói đó bằng Cygwin.

# cygcheck.exe -c |grep Incomplete
python3-setuptools      34.3.2-1         Incomplete

Vì vậy, những gì tôi đã làm, là xóa tất cả các gói Cygwin liên quan đến python3, ngoại trừ chính Python3. Sau đó, tôi lại cài đặt duy nhất cần thiết: python3-setuptools.

# apt-cyg remove python3-setuptools
apt-cyg install python3-setuptools

# Fix pip3 symlink (or just pip if you don't have python2)
ln -s /usr/bin/pip3.6 /usr/bin/pip3

# That also installs the Cygwin packages:  
# python3-appdirs, python3-packaging, python3-pyparsing, python3-six

# Now, update setuptools with pip:
pip3 install -U --force-reinstall --only-binary=:all: --no-clean --no-cache-dir setuptools

# pip list |grep setuptools
setuptools          40.5.0

Điều đó cũng nên được cài đặt lại tất cả các phụ thuộc setuptools với các bản cập nhật mới nhất.

Từ bây giờ, hãy làm cho mình một việc thích và bắt đầu sử dụng một môi trường ảo.


ensurepipcần thiết vì cygwin? Thông thường, piplà trên tàu, xem ở đây
Timo

@Timo, đối với tôi đó là, vì lý do gì tôi đã mất tích PIP3 cho python3
Lepidopteron

Miễn là bạn đã pipcài đặt, bạn luôn có thể liên kết biểu tượng trong /usr/bin/, nhưng có lẽ cách sử dụng bản sửa lỗi ensurepip gốc sẽ thanh lịch hơn . IDK nếu tôi đã có phiên bản cũ hoặc nếu nó đã được cài đặt cùng setuptoolsnhưng tôi chưa ensurepipcài đặt gói.
not2qubit

2
+1 để đề xuất fork apt-cyg của kou1okada, đây là fork có đầy đủ tính năng nhất và được duy trì tốt nhất cho đến nay, đã được sử dụng trong nhiều năm.
Prometheus

2

Trên windows, bạn có thể sử dụng pip để cài đặt các gói. Nếu bạn có nhiều cài đặt python trong cygwin, hãy cung cấp đường dẫn python đầy đủ, ví dụ Python 2

/usr/bin/python2.7 -m pip install pyyaml

Python 3

/usr/bin/python3.6 -m pip install pyyaml

Trong trường hợp bạn chưa cài đặt pip, hãy cài đặt nó bằng lệnh dưới đây

/usr/bin/python2.7 -m ensurepip 

hoặc là

/usr/bin/python3.6 -m ensurepip

0

Tôi vừa học được, lấy cảm hứng từ https://www.scivision.co/install-pip-in-cygwin/ và câu trả lời trước đây, rằng thay vì sử dụng pip, bạn chỉ cần sử dụng pip2 cho python2 hoặc pip3 cho python 3 trong cygwin trên cửa sổ. Tự hỏi về điều này cả ngày ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.