vị trí python trên mac osx


94

Tôi hơi bối rối với con trăn trên osx. Tôi không biết nếu chủ sở hữu trước của máy tính xách tay đã cài đặt macpython bằng macport. Và tôi nhớ rằng osx có một phiên bản nội bộ của python. Tôi đã thử sử dụng type -a pythonvà kết quả trả về

python is /usr/bin/python
python is /usr/local/bin/python

Tuy nhiên chạy cả python tại những địa điểm này cho tôi [GCC 4.2.1 (Apple Inc. build 5646)] on darwin. Cả hai đều đề cập đến cùng một mac python nội trang được cung cấp?

Tôi cũng đọc rằng cài đặt macpython một sẽ

     A MacPython 2.5 folder in your Applications folder. In here you
 find IDLE, the development environment that is a standard part of
 official Python distributions...

Tôi nhìn vào Applications, và có một MacPortthư mục với python2.6và những thứ được đề cập trong đó. Nhưng khi chạy IDLE, tôi thấy thông báo tương tự như trên.

Hmm, tôi hơi bối rối. Cái nào là cái nào?

Câu trả lời:


63

[GCC 4.2.1 (Apple Inc. build 5646)]là phiên bản GCC mà (các) Python được xây dựng, không phải là phiên bản của chính Python. Thông tin đó phải ở dòng trước. Ví dụ:

# Apple-supplied Python 2.6 in OS X 10.6
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

# python.org Python 2.7.2 (also built with newer gcc)
$ /usr/local/bin/python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Các mục trong /usr/binphải luôn có hoặc liên kết đến các tệp do Apple cung cấp trong OS X, trừ khi ai đó cố tình thay đổi mọi thứ ở đó. Để xem chính xác nơi /usr/local/bin/pythonliên kết với:

$ ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  68 Jul  5 10:05 /usr/local/bin/python@ -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

Trong trường hợp này, đó là điển hình cho một phiên bản Python được cài đặt python.org hoặc nó có thể là một phiên bản được xây dựng từ nguồn.


53

Trên Mac OS X, nó ở trong khung Python /System/Library/Frameworks/Python.framework/Resources.

Đường dẫn đầy đủ là:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

Btw, thật dễ dàng để tìm ra nơi bạn có thể tìm thấy một tệp nhị phân cụ thể: which Pythonsẽ hiển thị cho bạn đường dẫn của tệp nhị phân Python của bạn (có thể giống như tôi đã đăng ở trên).


yea tôi biết điều đó. Chỉ là tôi nhầm lẫn - tôi đã chạy trình thông dịch trên / usr / local / bin / và in sys.executable. Nó nói / usr / bin / python. nhưng tôi đã đọc các tài liệu và nó nói rằng apple do cung cấp nằm trong / usr / bin / và "Một liên kết tượng trưng với tệp thực thi Python được đặt trong / usr / local / bin /".
goh

Chà, nó có ý nghĩa: khi bạn tự biên dịch tệp thực thi python và di chuyển nó đến, chẳng hạn như / Users / John / Downloads /, nó sẽ hiển thị cho bạn biết nó được đặt tại / Users / John / Downloads / python. Bạn có thể chạy nhiều tệp thực thi cạnh nhau trên cùng một hệ thống. AFAIK cái trong Python.framework là cái chính, vì vậy bạn nên dựa vào cái đó.
elslooo

28
Trên thực tế, Pythons do Apple cung cấp trong Mac OS X đã ở trong /System/Library/Frameworks/Python.framework. Bất kỳ thứ gì trong đó /Library/Frameworks/Python.frameworkđến từ cài đặt của bên thứ ba, thường là trình cài đặt python.org (hoặc nhà phân phối khác) hoặc nếu bạn đã xây dựng khung mặc định của Python từ nguồn.
Ned Deily

1
Khi tôi chạy /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7các ps auxchương trình đầu ra cho tôi /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python, tại sao vậy - Tôi không thấy rằng đó là một liên kết tượng trưng? (Đã hỏi câu hỏi này tại AskDierence )
Zitrax

@Tim Cảm ơn. Khi tôi truy cập /Library/Frameworks/Python.framework/Versions/, tôi không thấy 2.7 (là những gì tôi đã cài đặt), mà là một tệp bí danh có tên 'Hiện tại', khi được nhấp vào, tôi sẽ gặp lỗi "Thao tác không thể cạnh tranh vì không tìm thấy mục gốc cho 'Hiện tại'. "
Pyderman

53

Tôi đã tìm thấy cách dễ nhất để định vị nó, bạn có thể sử dụng

which python

nó sẽ hiển thị một cái gì đó như thế này:

/usr/bin/python


3
Điều này không trả lời bản phân phối Python nào (ai đã tạo ra nó).
Scott Prive

42

Cái này sẽ giải quyết tất cả các vấn đề của bạn khi xử lý Python và Mac:

Nếu bạn có máy Mac và bạn đã cài đặt python3 như hầu hết chúng ta :) (với cài đặt brew - ofc)

tệp của bạn nằm ở:

/usr/local/Cellar/python/3.6.4_4/bin/python3

Làm sao bạn biết? Chạy:

which python3

Bạn sẽ nhận được:

/usr/local/bin/python3

Bây giờ đây là một liên kết tượng trưng, ​​làm thế nào bạn biết? Chạy:

ls -al /usr/local/bin/python3 

và bạn sẽ nhận được:

/usr/local/bin/python3 -> /usr/local/Cellar/python/3.6.4_4/bin/python3

có nghĩa là của bạn

/usr/local/bin/python3 

thực sự đang trỏ đến:

/usr/local/Cellar/python/3.6.4_4/bin/python3

Nếu vì lý do nào đó,

/usr/local/bin/python3 

không chỉ đến địa điểm bạn muốn, trong trường hợp của chúng tôi:

/usr/local/Cellar/python/3.6.4_4/bin/python3

chỉ cần sao lưu nó:

cp /usr/local/bin/python3{,.orig} 

và chạy:

rm -rf /usr/local/bin/python3

bây giờ hãy tạo một liên kết tượng trưng mới:

ln -s /usr/local/Cellar/python/3.6.4_4/bin/python3 /usr/local/bin/python3 

và bây giờ của bạn

/usr/local/bin/python3

đang chỉ đến

/usr/local/Cellar/python/3.6.4_4/bin/python3 

Kiểm tra bằng cách chạy:

ls -al /usr/local/bin/python3

1
cuối cùng .... xin cảm ơn !!!!! tôi đã gặp phải vấn đề này trong một môi trường ảo. Các giải pháp cũng hoạt động. chỉ cần sử dụng đúng vị trí python
Paul Jurczyk

6

Trên High Sierra

which python

hiển thị python mặc định nhưng nếu bạn đã tải xuống và cài đặt phiên bản mới nhất từ ​​python.org, bạn có thể tìm thấy nó bằng cách:

which python3.6

mà trên máy của tôi hiển thị

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

Điều này không trả lời bản phân phối Python nào (ai đã tạo ra nó).
Scott Prive


3

Tôi đã kiểm tra một vài cuộc thảo luận tương tự và tìm ra cách tốt nhất để định vị tất cả các bản dựng python2 / python3 là:

which -a python python3

2

tôi tìm thấy nó ở đây: /Library/Frameworks/Python.framework/Versions/3.6/bin


1

which python3 chỉ đơn giản là dẫn đến một đường dẫn trong đó trình thông dịch lắng xuống.


0

Chạy điều này trong thiết bị đầu cuối tương tác của bạn

import os
os.path

Nó sẽ cung cấp cho bạn thư mục nơi python được cài đặt


0

chạy mã sau trong tệp .py:

import sys

print(sys.version)
print(sys.executable)

-1

Tôi có một công thức nấu ăn để tìm mọi thứ trong linux / macos

Đầu tiên cập nhật db định vị sau đó thực hiện

locate WHATiWANTtoSEARCH | less

làm a / find để tìm những gì bạn đang tìm.

để cập nhật db định vị của bạn trong macos, hãy làm như sau:

sudo /usr/libexec/locate.updatedb

nó đôi khi mất một lúc. Hi vọng điêu nay co ich :)

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.