Saya mulai belajar python dan menyukainya. Saya bekerja pada Mac terutama juga Linux. Saya menemukan bahwa di Linux (kebanyakan Ubuntu 9,04) ketika saya menginstal modul python menggunakan apt-get berfungsi dengan baik. Saya dapat mengimpornya tanpa kesulitan.
Di Mac, saya terbiasa menggunakan Macports untuk menginstal semua hal Unixy. Namun, saya menemukan bahwa sebagian besar modul python yang saya instal dengannya tidak terlihat oleh python. Saya telah menghabiskan waktu bermain-main dengan pengaturan PATH dan menggunakan python_select. Tidak ada yang benar-benar berhasil dan pada titik ini saya tidak benar-benar mengerti, sebaliknya saya hanya mencari-cari.
Saya mendapat kesan bahwa Macports tidak dicintai secara universal untuk mengelola modul python. Saya ingin memulai dengan menggunakan pendekatan yang lebih "diterima" (jika itu kata yang tepat).
Jadi, saya bertanya-tanya, apa metode yang digunakan pengembang python Mac untuk mengelola modul mereka?
Pertanyaan bonus:
Apakah Anda menggunakan python Apple, atau versi lain? Apakah Anda mengkompilasi semuanya dari sumber atau ada paket palungan yang berfungsi dengan baik (Fink?).
Jawaban:
Cara paling populer untuk mengelola paket python (jika Anda tidak menggunakan manajer paket sistem Anda) adalah dengan menggunakan setuptools dan easy_install. Mungkin sudah diinstal pada sistem Anda. Gunakan seperti ini:
easy_install menggunakan Indeks Paket Python yang merupakan sumber daya yang luar biasa untuk pengembang python. Silakan melihat-lihat untuk melihat paket apa yang tersedia.
Opsi yang lebih baik adalah pip , yang mendapatkan traksi, karena mencoba untuk memperbaiki banyak masalah yang terkait dengan easy_install. Pip menggunakan repositori paket yang sama dengan easy_install, hanya berfungsi lebih baik. Sungguh satu-satunya waktu penggunaan perlu menggunakan easy_install adalah untuk perintah ini:
Setelah itu, gunakan:
Pada titik tertentu Anda mungkin ingin belajar sedikit tentang virtualenv . Jika Anda melakukan banyak pengembangan python pada proyek-proyek dengan persyaratan paket yang saling bertentangan, virtualenv adalah anugerah. Ini akan memungkinkan Anda untuk memiliki versi yang berbeda dari berbagai paket, dan beralih di antara mereka dengan mudah tergantung kebutuhan Anda.
Mengenai python mana yang harus digunakan, tetap menggunakan python Apple akan memberi Anda paling sedikit sakit kepala, tetapi jika Anda membutuhkan versi yang lebih baru (Leopard adalah 2.5.1 saya percaya), saya akan menggunakan macports python 2.6.
sumber
Pertanyaan Anda sudah berusia tiga tahun dan ada beberapa detail yang tidak tercakup dalam jawaban lain:
Kebanyakan orang yang saya kenal menggunakan HomeBrew atau MacPorts , saya lebih suka MacPorts karena sifatnya yang bersih dari apa yang merupakan lingkungan default Mac OS X dan pengaturan pengembangan saya. Cukup pindahkan folder / opt Anda dan uji paket Anda dengan lingkungan Python pengguna normal
MacPorts hanya portable di dalam Mac, tetapi dengan easy_install atau pip Anda akan belajar cara mengatur lingkungan Anda di platform apa pun (Win / Mac / Linux / Bsd ...). Selain itu akan selalu lebih terkini dan dengan lebih banyak paket
Saya pribadi membiarkan MacPorts menangani modul Python saya untuk menjaga semuanya diperbarui. Seperti halnya manajer paket tingkat tinggi lainnya (yaitu: apt-get) itu jauh lebih baik untuk pengangkatan modul yang berat dengan banyak dependensi biner. Tidak ada cara saya akan membangun binding Qt saya (PySide) dengan easy_install atau pip. Qt sangat besar dan membutuhkan banyak untuk dikompilasi. Segera setelah Anda menginginkan paket Python yang membutuhkan pustaka yang digunakan oleh program non Python, cobalah untuk menghindari easy_install atau pip
Pada titik tertentu Anda akan menemukan bahwa ada beberapa paket yang hilang di dalam MacPorts. Saya tidak percaya bahwa MacPorts akan memberi Anda seluruh CheeseShop . Sebagai contoh, baru-baru ini saya membutuhkan modul Elixir , tetapi MacPorts hanya menawarkan py25-elixir dan py26-elixir, tidak ada versi py27. Dalam kasus-kasus seperti ini Anda memiliki:
(pastikan Anda selalu mengetikkan pip- (versi))
Itu akan membangun perpustakaan Python tambahan di dir rumah Anda. Ya, Python akan bekerja dengan lebih dari satu lokasi perpustakaan: satu dikontrol oleh MacPorts dan satu pengguna lokal untuk segala sesuatu yang hilang dalam MacPorts.
Sekarang perhatikan bahwa saya lebih menyukai pip daripada easy_install. Ada alasan bagus Anda harus menghindari setuptools dan easy_install. Berikut adalah penjelasan yang bagus dan saya mencoba untuk menjauh dari mereka. Salah satu fitur pip yang sangat berguna adalah memberi Anda daftar semua modul (beserta versinya) yang Anda instal dengan MacPorts, easy_install dan pip sendiri:
Jika Anda sudah mulai menggunakan easy_install, jangan khawatir, pip dapat mengenali semua yang sudah dilakukan oleh easy_install dan bahkan memutakhirkan paket yang diinstal dengannya.
Jika Anda seorang pengembang, awasi virtualenv untuk mengontrol berbagai pengaturan dan kombinasi versi modul. Jawaban lain sudah menyebutkannya, yang belum disebutkan sejauh ini adalah modul Tox , alat untuk menguji bahwa paket Anda menginstal dengan benar dengan versi Python yang berbeda.
Meskipun saya biasanya tidak memiliki konflik versi, saya ingin memiliki virtualenv untuk mengatur lingkungan yang bersih dan mendapatkan pandangan yang jelas tentang dependensi paket saya. Dengan begitu saya tidak pernah melupakan dependensi di setup.py saya
Jika Anda menggunakan MacPorts, ketahuilah bahwa beberapa versi dari paket yang sama tidak dipilih lagi seperti gaya Debian lama dengan paket python_select tambahan (masih ada untuk kompatibilitas). Sekarang Anda memiliki perintah pilih untuk memilih versi Python yang akan digunakan (Anda bahkan dapat memilih yang diinstal Apple):
Tambahkan racun di atasnya dan program Anda harus benar-benar portabel
sumber
Silakan lihat lingkungan pengembangan Python OS X . Cara terbaik adalah menggunakan MacPorts . Unduh dan instal MacPorts, lalu instal Python via MacPorts dengan mengetikkan perintah berikut di Terminal:
ATAU
Gunakan set pertama perintah untuk menginstal Python 2.6 dan set kedua untuk menginstal Python 3.0. Kemudian gunakan:
ATAU
Pada perintah di atas, ganti nama paket dengan nama paket, misalnya:
Perintah-perintah ini akan secara otomatis menginstal paket (dan dependensinya) untuk versi Python yang diberikan.
Untuk daftar lengkap paket yang tersedia untuk Python, ketik:
ATAU
Perintah mana yang Anda gunakan tergantung pada versi Python yang Anda pilih untuk menginstal.
sumber
sudo python_select python30
telah diganti dengansudo port select --set python python30
.Saya menggunakan MacPorts untuk menginstal Python dan modul pihak ketiga yang dilacak oleh MacPorts
/opt/local
, dan saya memasang modul yang diinstal secara manual (yang tidak ada dalam repositori MacPorts) ke dalamnya/usr/local
, dan ini tidak pernah menyebabkan masalah. Saya pikir Anda mungkin bingung dengan penggunaan skrip MacPorts dan variabel lingkungan tertentu.MacPorts
python_select
digunakan untuk memilih versi Python "saat ini", tetapi tidak ada hubungannya dengan modul. Ini memungkinkan Anda untuk, misalnya, menginstal Python 2.5 dan Python 2.6 menggunakan MacPorts, dan beralih di antara instalasi.The
$PATH
variabel lingkungan tidak tidak mempengaruhi apa modul Python dimuat.$PYTHONPATH
adalah apa yang kamu cari.$PYTHONPATH
harus mengarah ke direktori yang berisi modul Python yang ingin Anda muat. Dalam kasus saya,$PYTHONPATH
variabel saya berisi/usr/local/lib/python26/site-packages
. Jika Anda menggunakan Python MacPorts, ia mengatur direktori lain yang tepat untuk Anda, jadi Anda hanya perlu menambahkan jalur tambahan$PYTHONPATH
. Tetapi sekali lagi,$PATH
tidak digunakan sama sekali ketika Python mencari modul yang telah Anda instal.$PATH
adalah digunakan untuk mencari executables, jadi jika Anda menginstal MacPorts' Python, pastikan/opt/local/bin
dalam Anda$PATH
.sumber
Tidak ada yang salah dengan menggunakan instalasi MacPorts Python. Jika Anda memasang modul python dari MacPorts tetapi tidak melihatnya, itu artinya Anda tidak menggunakan python MacPorts yang Anda instal. Dalam shell terminal, Anda dapat menggunakan jalur absolut untuk memanggil berbagai Python yang mungkin diinstal. Sebagai contoh:
Untuk mendapatkan python yang tepat secara default mengharuskan shell $ PATH Anda diset dengan benar untuk memastikan bahwa executable yang tepat ditemukan terlebih dahulu. Solusi lain adalah mendefinisikan alias shell ke berbagai ular sanca.
Instalasi python.org (MacPython) juga baik, seperti yang disarankan orang lain.
easy_install
dapat membantu tetapi, sekali lagi, karena setiap instance Python mungkin memilikieasy_install
perintahnya sendiri , pastikan Anda menggunakan hakeasy_install
.sumber
Jika Anda menggunakan Python dari MacPorts, ia memiliki easy_install sendiri yang terletak di: /opt/local/bin/easy_install-2.6 (untuk py26, artinya). Ini tidak sama dengan hanya memanggil easy_install secara langsung, bahkan jika Anda menggunakan python_select untuk mengubah perintah python default Anda.
sumber
sudo port install py2.6-pip
mendapatkan pip.Sudahkah Anda melihat ke easy_install sama sekali? Itu tidak akan menyinkronkan macports Anda atau hal-hal seperti itu, tetapi secara otomatis akan mengunduh paket terbaru dan semua dependensi yang diperlukan, yaitu
untuk paket pengujian unit hidung, atau
untuk
trac
pelacak bug.Ada sedikit informasi lebih lanjut di halaman EasyInstall mereka juga.
sumber
Untuk instalasi MacPython, saya menemukan solusi yang efektif untuk memperbaiki masalah dengan setuptools (easy_install) di posting blog ini:
http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard
Salah satu tip praktis termasuk mengetahui versi python yang aktif di terminal:
sumber
Ketika Anda menginstal modul dengan MacPorts, itu tidak masuk ke versi Python Apple. Sebaliknya modul-modul tersebut diinstal ke versi MacPorts dari Python yang dipilih.
Anda dapat mengubah versi Python mana yang digunakan secara default menggunakan port mac yang disebut python_select . instruksi di sini .
Juga, ada easy_install . Yang akan menggunakan python untuk menginstal modul python.
sumber
python_select
sudah tidak digunakan lagi, lihat jawaban yang lebih baru.Anda mungkin sudah memiliki
pip3
pra-instal, jadi coba saja!sumber
Mengenai versi python yang digunakan, Mac OS biasanya mengirimkan versi python lama. Ide yang bagus untuk meningkatkan ke versi yang lebih baru. Anda dapat mengunduh .dmg dari http://www.python.org/download/ . Jika Anda melakukan itu, ingatlah untuk memperbarui jalur. Anda dapat menemukan perintah yang tepat di sini http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/
sumber
Saya menggunakan easy_install dengan Apple Python, dan itu berfungsi seperti pesona.
sumber
Langsung menginstal salah satu paket fink (Django 1.6 pada 2013-Nov)
Atau buat sendiri virtualenv:
Atau gunakan fink django plus paket pip lain yang diinstal dalam virtualenv
sumber