Set_up: Saya memiliki file .py untuk setiap fungsi yang perlu saya gunakan dalam suatu program.
Dalam program ini, saya perlu memanggil fungsi dari file eksternal.
Saya sudah mencoba:
from file.py import function(a,b)
Tapi saya mendapatkan kesalahan:
ImportError: Tidak ada modul bernama 'file.py'; file bukan paket
Bagaimana saya memperbaiki masalah ini?
from file import function
. Tidak perlu untuk ekstensi file atau parameter fungsifile.py
, pastikan tidak ada paket di direktori Anda dengan namanyafile
.Jawaban:
Tidak perlu menambahkan
file.py
saat mengimpor. Cukup tulisfrom file import function
, lalu panggil fungsi menggunakanfunction(a, b)
. Alasan mengapa ini mungkin tidak berhasil, adalah karenafile
merupakan salah satu modul inti Python, jadi saya sarankan Anda mengubah nama file Anda.Perhatikan bahwa jika Anda mencoba mengimpor fungsi dari
a.py
ke file yang dipanggilb.py
, Anda harus memastikan bahwaa.py
danb.py
berada di direktori yang sama.sumber
Pertama-tama Anda tidak perlu
.py
.Jika Anda memiliki file
a.py
dan di dalamnya Anda memiliki beberapa fungsi:Dan Anda ingin mengimpornya
z.py
Anda harus menulissumber
Anda dapat melakukan ini dengan 2 cara. Pertama hanya mengimpor fungsi spesifik yang Anda inginkan dari file.py. Untuk melakukan ini gunakan
Cara lain adalah mengimpor seluruh file
Kemudian Anda dapat memanggil fungsi apa pun di dalam file.py menggunakan
sumber
Anda dapat memanggil fungsi dari direktori yang berbeda juga, jika Anda tidak bisa atau tidak ingin memiliki fungsi di direktori yang sama dengan yang sedang Anda kerjakan. Anda dapat melakukan ini dengan dua cara (mungkin ada lebih banyak alternatif, tetapi ini adalah yang telah bekerja untuk saya).
Alternatif 1 Ubah sementara direktori kerja Anda
Alternatif 2 Tambahkan direktori di mana Anda memiliki fungsi Anda di sys.path
sumber
Jika file Anda berada dalam struktur paket yang berbeda dan Anda ingin memanggilnya dari paket yang berbeda, maka Anda dapat menyebutnya dengan cara itu:
Katakanlah Anda memiliki struktur paket berikut dalam proyek python Anda:
dalam
com.my.func.DifferentFunction
file python Anda memiliki beberapa fungsi, seperti:Dan Anda ingin memanggil fungsi yang berbeda
Example3.py
, kemudian dengan cara berikut Anda dapat melakukannya:Tetapkan in
Example3.py
-file pernyataan impor untuk mengimpor semua fungsiatau tentukan setiap nama fungsi yang ingin Anda impor
Kemudian di
Example3.py
Anda dapat memanggil fungsi untuk mengeksekusi:Keluaran:
sumber
Datang di fitur yang sama tetapi saya harus melakukan di bawah ini untuk membuatnya berfungsi.
Jika Anda melihat 'ModuleNotFoundError: Tidak ada modul bernama', Anda mungkin memerlukan titik (.) Di depan nama file seperti di bawah ini;
sumber
Pertama-tama simpan file dalam format .py (misalnya,
my_example.py
). Dan jika file itu memiliki fungsi,Dalam fungsi panggilan Anda cukup mengetikkan baris di bawah ini.
file_name: my_example2.py
============================
============================
sumber
import fn
(tanpa ekstensi) dan menggunakannya langsung pada file utamafn.my_funcion()
. Ketika saya menggunakanimport fn.py
mencoba untuk memuat file py.py, yang tidak ada. Menggunakanfrom fn.py import funcname
tidak berhasil juga. Terima kasih.Ubah nama modul menjadi sesuatu selain 'file'.
Kemudian juga pastikan ketika Anda memanggil fungsi itu:
1) jika Anda mengimpor seluruh modul, Anda tegaskan kembali nama modul saat memanggilnya:
atau
2) atau jika Anda mengimpor fungsi tertentu, fungsi dengan alias, atau semua fungsi menggunakan *, Anda tidak mengulangi nama modul:
atau
atau
sumber
Fungsi dari file .py (dapat (tentu saja) berada di direktori yang berbeda) dapat dengan mudah diimpor dengan menulis direktori terlebih dahulu dan kemudian nama file tanpa ekstensi .py:
Dan nantinya digunakan:
function_name()
sumber
Di dalam MathMethod.Py.
Di dalam Main
Output: 1200
sumber
Anda tidak perlu menambahkan
file.py
.Simpan saja file di lokasi yang sama dengan file dari tempat Anda ingin mengimpornya. Kemudian cukup impor fungsi Anda:
sumber
Anda harus memiliki file di lokasi yang sama dengan file Python yang Anda coba impor. Juga 'dari fungsi impor file' sudah cukup.
sumber
tambahkan titik (.) di depan nama file jika Anda ingin mengimpor file ini yang berada di direktori yang sama di mana Anda menjalankan kode Anda.
Sebagai contoh, saya menjalankan file bernama a.py dan saya ingin mengimpor metode bernama addFun yang ditulis dalam b.py, dan b.py ada di direktori yang sama
dari .b impor addFun
sumber
Misalkan file yang ingin Anda panggil adalah anotherfile.py dan metode yang ingin Anda panggil adalah method1, kemudian impor file terlebih dahulu dan kemudian metode
jika method1 adalah bagian dari kelas, biarkan kelas menjadi class1, lalu
lalu buat objek class1, misalkan nama objeknya ob1, lalu
sumber
dalam kasus saya saya menamai file saya
helper.scrap.py
dan tidak bisa membuatnya bekerja sampai saya berubah menjadihelper.py
sumber