Anda seharusnya tidak perlu memodifikasi jalur secara langsung, baik melalui variabel lingkungan atau sys.path
. Apakah Anda menggunakan os (mis. apt-get
), Atau pip
dalam virtualenv, paket akan diinstal ke lokasi yang sudah di jalur.
Dalam contoh Anda, GNU Radio diinstal ke site-packages
lokasi standar sistem Python 2 , yang sudah ada di jalur. Mengarahkan PyCharm pada penerjemah yang tepat sudah cukup; jika tidak ada sesuatu yang salah yang tidak terlihat. Mungkin saja itu /usr/bin/python
tidak menunjuk ke juru bahasa yang sama tempat GNU Radio diinstal; coba tunjuk secara spesifik pada python2.7
biner. Atau, PyCharm dulu agak buruk dalam mendeteksi paket; File > Invalidate Caches > Invalidate and Restart
akan mengatakannya untuk memindai ulang.
Jawaban ini akan mencakup bagaimana Anda harus mengatur lingkungan proyek, menginstal paket dalam skenario yang berbeda, dan mengkonfigurasi PyCharm. Saya merujuk beberapa kali ke Panduan Pengguna Pengemasan Python , ditulis oleh grup yang sama yang mengelola alat pengemasan Python resmi.
Cara yang benar untuk mengembangkan aplikasi Python adalah dengan virtualenv. Paket dan versi diinstal tanpa mempengaruhi sistem atau proyek lain. PyCharm memiliki antarmuka bawaan untuk membuat virtualenv dan menginstal paket. Atau Anda dapat membuatnya dari baris perintah dan kemudian arahkan PyCharm ke sana.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
Di proyek PyCharm Anda, buka File > Settings > Project > Project Interpreter
. Jika Anda menggunakan virtualenvwrapper
atau PyCharm untuk membuat env, maka itu akan muncul di menu. Jika tidak, klik gir, pilih Add Local
, dan temukan biner Python di env. PyCharm akan menampilkan semua paket di env yang dipilih.
Dalam beberapa kasus, seperti dengan GNU Radio, tidak ada paket untuk diinstal pip
, paket itu diinstal di seluruh sistem ketika Anda menginstal sisa GNU Radio (mis. apt-get install gnuradio
). Dalam hal ini, Anda masih harus menggunakan virtualenv, tetapi Anda harus membuatnya sadar akan paket sistem ini.
$ python2 -m virtualenv --system-site-packages env
Sayangnya itu terlihat agak berantakan, karena semua paket sistem sekarang akan muncul di env Anda, tetapi mereka hanya tautan, Anda masih dapat menginstal atau meningkatkan paket dengan aman tanpa mempengaruhi sistem.
Dalam beberapa kasus, Anda akan memiliki beberapa paket lokal yang sedang Anda kembangkan, dan Anda ingin satu proyek menggunakan paket lainnya. Dalam hal ini Anda mungkin berpikir Anda harus menambahkan paket lokal ke jalur proyek lain, tetapi ini tidak terjadi. Anda harus menginstal paket Anda dalam mode pengembangan . Semua ini membutuhkan menambahkan setup.py
file ke paket Anda , yang akan diperlukan pula untuk mendistribusikan dan menyebarkan paket nanti.
Minimal setup.py
untuk proyek pertama Anda:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Kemudian instal di proyek kedua env Anda:
$ pip install -e /path/to/first/project