Saya mengalami kesulitan memahami cara pengimporan modul bekerja dengan Python (Saya belum pernah melakukannya dalam bahasa lain sebelumnya).
Katakanlah saya punya:
myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py
Sekarang saya mencoba untuk mendapatkan sesuatu seperti ini:
myapp.py
===================
from myapp import SomeObject
# stuff ...
TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
Namun, saya pasti melakukan sesuatu yang salah karena Python tidak dapat melihat itu myapp
adalah modul:
ImportError: No module named myapp
import
sayaTestCase.py
masih memberi saya kesalahan yang sama. Saya berasumsi itu karena ada di dalam sub-direktori__init__.py
?from ... import ...
hak?from myapp.tests import TestCase from a script outside myapp. If you're running
python TestCase.py` dalam folder tes yang tidak dapat Anda lakukan impor relatiffrom fodername import file_name_of_my_py_code
, tetapi ketika saya mencoba mengakses objek yang didefinisikan difile_name_of_my_py_code.py
dalamnya dikatakanNameError: name 'ClassName' is not defined
Fungsi
import
mencari file ke dalam PYTHONPATH Anda. variabel dan direktori lokal Anda. Jadi Anda bisa meletakkan semua file Anda di direktori yang sama, atau mengekspor path mengetik ke terminal ::sumber
export
kami telah "mengatur PYTHONPATH =% PYTHONPATH%; C: \ path_to_myapp \ myapp \ myapp \"jalur ekspor adalah cara yang baik. Cara lain adalah menambahkan .pth ke lokasi paket situs Anda. Di mac saya, python saya menyimpan paket situs di / Library / Python di bawah ini
Saya membuat file bernama awesome.pth di /Library/Python/2.7/site-packages/awesome.pth dan dalam file tersebut letakkan path berikut ini yang mereferensikan modul mengagumkan saya
sumber
Anda dapat mencoba
karena nama proyek Anda sama dengan myapp.py yang membuatnya mencari dokumen proyek terlebih dahulu
sumber
Di direktori myapp pertama Anda, Anda dapat menambahkan file setup.py dan menambahkan dua kode python di setup.py
di direktori myapp pertama Anda di commandline, gunakan pip install -e. untuk menginstal paket
sumber
pip install
pada Windows 10 default untuk menginstal di 'Program Files / PythonXX / Lib / situs-paket' yang merupakan direktori yang memerlukan hak administratif. Jadi saya memperbaiki masalah saya dengan menjalankan pip install sebagai Administrator (Anda harus membuka command prompt sebagai administrator bahkan jika Anda masuk dengan akun admin). Juga, lebih aman untuk memanggil pip dari python.misalnya
python -m pip install <package-name>
bukannya
pip install <package-name>
sumber
Dalam kasus saya itu adalah kejutan Windows vs Python, meskipun nama file Windows tidak sensitif huruf, impor Python adalah. Jadi, jika Anda memiliki
Stuff.py
file, Anda perlu mengimpor nama ini apa adanya.sumber
Anda harus punya
di semua folder yang memiliki kode yang perlu Anda berinteraksi. Anda juga perlu menentukan nama folder teratas proyek Anda di setiap impor bahkan jika file yang Anda coba impor berada pada level yang sama.
sumber