Saya telah menulis modul (file my_mod.py
file yang berada di folder my_module
). Saat ini, saya bekerja di file cool_script.py
yang berada di folder cur_proj
. Saya telah membuka folder di PyCharm menggunakan File - open (dan saya berasumsi, karenanya, ini adalah proyek PyCharm).
Di ProjectView (CMD-7), saya bisa melihat proyek saya cur_proj
(merah) dan di bawah "Pustaka Eksternal" saya melihat my_module
. Di cool_script.py, saya bisa menulis
from my_module import my_mod as mm
dan PyCharm bahkan membuat saran untuk my_mod. Sejauh ini baik.
Namun, ketika saya mencoba menjalankan cool_script.py, PyCharm memberi tahu saya "Tidak ada modul bernama my_module"
Ini sepertinya aneh bagiku, karena
A) di terminal (OS 10.10.2), dengan python, saya dapat mengimpor modul tanpa masalah - ada entri yang sesuai di PYTHONPATH di .bashrc
B) di PyCharm - Pengaturan - Proyek cur_proj - Project Interpreter - CogWheel di sebelah python interpreter - more - menunjukkan jalur untuk ikon juru bahasa yang dipilih, jalur dari PYTHONPATH muncul (seperti yang saya pikir seharusnya).
Karenanya, mengapa saya mendapatkan kesalahan saat mencoba menjalankan cool_script.py? - Apa yang saya lewatkan?
Catatan:
- Saya tidak mendeklarasikan versi python berbeda / khusus di bagian atas cool_script.py
- Saya memastikan bahwa jalan menuju
my_module
benar - Saya menaruh
__init__.py
file (file kosong) baik dalammy_module
maupun dalamcur_proj
- Saya tidak menggunakan
virtualenv
Addendum 2015-Feb-25
Ketika saya masuk ke PyCharm untuk Menjalankan - Edit Konfigurasi, untuk proyek saya saat ini, ada dua opsi yang dipilih dengan tanda centang: " Tambahkan akar konten ke PYTHONPATH " dan " Tambahkan sumber akar ke PYTHONPATH ". Ketika saya tidak mencentang keduanya, saya dapat memuat modul saya.
Jadi itu berfungsi sekarang - tapi mengapa ?
Pertanyaan lebih lanjut muncul:
- Apa itu "root konten" dan apa yang "root sumber"? Dan mengapa menambahkan sesuatu ke PYTHONPATH membuatnya entah bagaimana rusak?
- haruskah saya hapus centang pada kedua opsi tersebut sepanjang waktu (demikian juga dalam pengaturan standar, tidak hanya konfigurasi spesifik proyek (panel kiri dari dialog Konfigurasi Konfigurasi Jalankan / Debug)?
Enable Django Support
memeriksa pengaturan Languages & Frameworks -> Django
di versi Pro PyCharm. Itu membuka konsol Django yang menyebabkan masalah impor.
from foldername.mymodule import mymethod
. Hal lain yang harus saya lakukan adalah menambahkan folder _init .py kosong di semua folder yang akan Anda gunakan untuk masuk ke modul Anda sehingga jikafrom parentfolder.childfolder.mymodule ...
Anda perlu init dalam dua folder. Tergantung di mana folder berada relatif satu sama lain, Anda mungkin perlu memiliki paket tingkat atassys.path
seperti yang dijelaskan dalam jawaban