it-swarm-vi.tech

cài đặt pip /usr/local/opt/python/bin/python2.7: trình thông dịch xấu: Không có tệp hoặc thư mục như vậy

Tôi không biết thỏa thuận là gì nhưng tôi bị mắc kẹt sau một số giải pháp stackoverflow không có chỗ đứng. Bạn có thể vui lòng giúp tôi về điều này?

  Monas-MacBook-Pro:CS764 mona$ Sudo python get-pip.py
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
    /tmp/tmpbSjX8k/pip.Zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
    Collecting pip
      Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
        100% |████████████████████████████████| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 1.4.1
        Uninstalling pip-1.4.1:
          Successfully uninstalled pip-1.4.1
    Successfully installed pip-7.1.0
    Monas-MacBook-Pro:CS764 mona$ pip --version
    -bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
68
Mona Jalal

Tôi đã sử dụng home-brew để cài đặt 2.7 trên OS X 10.10 và cài đặt mới bị thiếu các liên kết sym. Tôi đã chạy

brew link --overwrite python

như đã đề cập trong Làm thế nào để symlink python trong Homebrew? và nó đã giải quyết vấn đề.

141
LancDec

Tôi đoán bạn có hai cài đặt python, hoặc hai cài đặt pip, một trong số đó đã bị xóa một phần.

Tại sao bạn sử dụng Sudo? Lý tưởng nhất là bạn có thể cài đặt và chạy mọi thứ từ tài khoản người dùng của bạn thay vì sử dụng root. Nếu bạn kết hợp root và tài khoản cục bộ của mình với nhau, bạn có nhiều khả năng gặp phải các vấn đề về quyền (ví dụ: xem cảnh báo mà nó đưa ra về "thư mục mẹ không thuộc sở hữu của người dùng hiện tại").

Bạn nhận được gì nếu bạn chạy nó?

$ head -n1 /usr/local/bin/pip

Điều này sẽ cho bạn thấy nhị phân python pip nào đang cố sử dụng. Nếu nó trỏ /usr/local/opt/python/bin/python2.7, thì hãy thử chạy nó:

$ ls -al /usr/local/opt/python/bin/python2.7

Nếu điều này nói "Không có tệp hoặc thư mục như vậy", thì pip đang cố sử dụng tệp nhị phân python đã bị xóa.

Tiếp theo, hãy thử điều này:

$ which python
$ which python2.7

Để xem đường dẫn của nhị phân python thực sự hoạt động.

Vì có vẻ như pip đã được cài đặt thành công ở đâu đó, có thể là /usr/local/bin/pip là một phần của bản cài đặt cũ hơn của pip cao hơn trên PATH. Để kiểm tra điều đó, bạn có thể thử di chuyển nhị phân pip không hoạt động ra khỏi cách như thế này (có thể yêu cầu Sudo):

$ mv /usr/local/bin/pip /usr/local/bin/pip.old

Sau đó thử chạy lại lệnh pip --version của bạn. Hy vọng rằng nó chọn phiên bản chính xác và chạy thành công.

39
Steven Kryskalla

Chỉ có giải pháp trong OSX và biến thể của nó.

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
29
TheExorcist

Tôi đã mắc lỗi tương tự khi sử dụng Sudo cho cài đặt của mình. (rất tiếc)

brew install python
brew linkapps python
brew link --overwrite python 

Điều này đưa mọi thứ trở lại bình thường.

25
DaveSaunders

Sửa chữa đường ống

Đối với lỗi này:

~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

Nguồn gốc của vấn đề này là một đường dẫn trăn xấu được mã hóa cứng trong pip (có nghĩa là nó sẽ không được khắc phục bằng cách thay đổi $ PATH của bạn). Đường dẫn đó không còn được mã hóa cứng trong phiên bản mới nhất của pip, vì vậy một giải pháp mà nên hoạt động là:

pip install --upgrade pip

Nhưng tất nhiên, lệnh này sử dụng pip, vì vậy nó thất bại với cùng một lỗi.

Cách để tự khởi động bản thân khỏi mớ hỗn độn này:

  1. Chạy which pip
  2. Mở tệp đó trong trình soạn thảo văn bản
  3. Thay đổi dòng đầu tiên từ #!/usr/local/opt/python/bin/python2.7 thành ví dụ: #!/usr/local/opt/python2/bin/python2.7 (lưu ý python2 trong đường dẫn) hoặc bất kỳ đường dẫn nào đến trình thông dịch python đang hoạt động trên máy của bạn. 
  4. Bây giờ, pip install --upgrade pip

Sửa lỗi virtualenv

Đối với tôi, tôi đã tìm thấy vấn đề này bằng cách đầu tiên có vấn đề giống hệt từ virtualenv:

~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

Giải pháp ở đây là chạy

pip uninstall virtualenv
pip install virtualenv

Nếu chạy lệnh đó cho cùng một lỗi từ pip, xem bên trên.

17
kotoole

Tôi đã có vấn đề tương tự. Về cơ bản pip đã tìm kiếm một đường dẫn sai (đường dẫn cài đặt cũ) hoặc python. Các giải pháp sau đây làm việc cho tôi:

  • Tôi đã kiểm tra đường dẫn python ở đâu (thử which python)
  • Tôi đã kiểm tra dòng đầu tiên trên tệp pip (/usr/local/bin/pip2.7/usr/local/bin/pip). Dòng nên nêu đường dẫn chính xác đến đường dẫn python. Trong trường hợp của tôi, đã không. Tôi đã sửa nó và bây giờ nó hoạt động tốt.
12
sahar

Trong trường hợp nó giúp được bất cứ ai, giải pháp được đề cập trong câu hỏi khác này có hiệu quả với tôi khi pip ngừng hoạt động hôm nay sau khi nâng cấp: Pip bị hỏng sau khi nâng cấp

Có vẻ như đó là một vấn đề khi vị trí được lưu trong bộ nhớ cache trước đó thay đổi, vì vậy bạn có thể làm mới bộ đệm bằng lệnh này:

hash -r
8
Jordan

Để đơn giản hóa hoạt động, chúng ta có thể sử dụng lệnh dưới đây để cài đặt lại phiên bản 2:

brew install [email protected]

Sau đó, trên mac của tôi, nó trông như dưới đây:

▶ python -V
Python 2.7.10

▶ python2 -V
Python 2.7.14

▶ python3 -V
Python 3.6.5

▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
8
feuyeux

Tôi gặp vấn đề tương tự. Tôi đã cài đặt cả Python 2.7 & 3.6. Python 2.7 đã hoạt động virtualenv, nhưng sau khi cài đặt Python3, virtualenv tiếp tục tìm phiên bản 2.7 và không thể tìm thấy nó. Đang làm pip install virtualenv đã cài đặt phiên bản Python3 của virtualenv.

Sau đó, với mỗi lệnh, nếu tôi muốn sử dụng Python2, tôi sẽ sử dụng virtualenv --python=python2.7 somecommand

4
yabrol

Tôi có cùng một vấn đề, virtualenv đã chỉ vào một con đường trăn cũ. Sửa đường dẫn giải quyết vấn đề:

$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

$ which python2.7
/opt/local/bin/python2.7

# needed to change to correct python path
$ head  /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH

# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.
4
d g

Vì tôi đã cài đặt cả python 2 và 3 trên Mac OSX nên tôi đã gặp đủ loại lỗi.

Tôi đã sử dụng để tìm vị trí của tệp python2.7 (/usr/local/bin/python2.7)

which python2.7

Sau đó, tôi đã liên kết vị trí cài đặt python2.7 thực sự của mình với vị trí mà tập lệnh mong đợi:

ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7
2
Simon Briggs

Tôi có cùng một vấn đề. Nếu tôi chạy brew link --overwrite python2. Vẫn còn zsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory.

cd /usr/local/opt/
mv python2 python

Giải quyết nó! Bây giờ chúng ta có thể sử dụng vải phiên bản python2.

=== 2018/07/25 đã cập nhật

Có một cách thuận tiện để sử dụng phiên bản python2 fab khi os python của bạn được liên kết với python3. .sh cho lệnh của bạn.

# fab python2
cd /usr/local/opt
rm python
ln -s python2 python

# use the fab cli
...

# link to python3
cd /usr/local/opt
rm python
ln -s python3 python

Hi vọng điêu nay co ich.

1
Peter. Chen

Chỉnh sửa dòng đầu tiên của tệp này làm việc với tôi:

MBP-de-Jose:~ josejunior$ which python3

/usr/local/Cellar/python/3.7.3/bin/python3

MBP-de-Jose:~ josejunior$

trước

#!/usr/local/opt/python/bin/python3.7

sau

#!/usr/local/Cellar/python/3.7.3/bin/python3
1
José Junior

Tất cả những gì bạn cần làm là ... đóng cửa sổ terminal và mở lại cái mới để khắc phục vấn đề này.

Vấn đề là, đường dẫn python mới không được thêm vào bashrc (Cửa sổ thiết bị đầu cuối nguồn hoặc mới sẽ giúp ích).

1
Nithin Kumar Gaddam

Trong trường hợp của tôi, tôi đã quyết định gỡ bỏ cài đặt python homebrew khỏi máy mac của mình vì tôi đã có hai phiên bản python khác được cài đặt trên máy Mac của mình thông qua MacPorts. Điều này gây ra thông báo lỗi. 

Cài đặt lại python thông qua brew đã giải quyết vấn đề của tôi.

1
Simon
Sudo /usr/bin/easy_install pip

lệnh này đã làm việc cho tôi

0
user9022502