Set_up: Mam plik .py dla każdej funkcji, której muszę używać w programie.
W tym programie muszę wywołać funkcję z plików zewnętrznych.
Próbowałem:
from file.py import function(a,b)
Ale dostaję błąd:
ImportError: Brak modułu o nazwie „file.py”; plik nie jest pakietem
Jak rozwiązać ten problem?
from file import function
. Nie potrzeba rozszerzeń plików ani parametrów funkcjifile.py
, upewnij się, że w katalogu nie ma pakietu o nazwiefile
.Odpowiedzi:
Nie ma potrzeby dodawania
file.py
podczas importowania. Po prostu napiszfrom file import function
, a następnie wywołaj funkcję za pomocąfunction(a, b)
. Powodem, dla którego to może nie działać, jest to, żefile
jest to jeden z podstawowych modułów Pythona, więc sugeruję zmianę nazwy pliku.Zauważ, że jeśli starasz się od funkcji importu
a.py
do pliku o nazwieb.py
, trzeba się upewnić, żea.py
ib.py
są w tym samym katalogu.źródło
Przede wszystkim nie potrzebujesz
.py
.Jeśli masz plik
a.py
i masz w nim kilka funkcji:I chcesz je zaimportować
z.py
, musisz napisaćźródło
Możesz to zrobić na 2 sposoby. Po pierwsze, wystarczy zaimportować określoną funkcję z pliku.py. Aby to zrobić, użyj
Innym sposobem jest zaimportowanie całego pliku
Następnie możesz wywołać dowolną funkcję w pliku file.py za pomocą
źródło
Możesz również wywołać funkcję z innego katalogu, na wypadek, gdybyś nie mógł lub nie chcesz mieć funkcji w tym samym katalogu, w którym pracujesz. Możesz to zrobić na dwa sposoby (być może jest więcej alternatyw, ale te były dla mnie skuteczne).
Alternatywa 1 Tymczasowo zmień katalog roboczy
Alternatywa 2 Dodaj katalog, w którym masz swoją funkcję, do sys.path
źródło
Jeśli plik ma inną strukturę pakietu i chcesz wywołać go z innego pakietu, możesz wywołać go w ten sposób:
Załóżmy, że w projekcie Python masz następującą strukturę pakietów:
w -
com.my.func.DifferentFunction
plik python masz jakąś funkcję, na przykład:I chcesz wywoływać różne funkcje
Example3.py
, a następnie w następujący sposób:Zdefiniuj
Example3.py
plik importu instrukcji do importu wszystkich funkcjilub zdefiniuj nazwę każdej funkcji, którą chcesz zaimportować
Następnie
Example3.py
możesz wywołać funkcję do wykonania:Wynik:
źródło
Znalazłem tę samą funkcję, ale musiałem wykonać poniższe czynności, aby działała.
Jeśli widzisz „ModuleNotFoundError: Brak modułu o nazwie”, prawdopodobnie potrzebujesz kropki (.) Przed nazwą pliku, jak poniżej;
źródło
Najpierw zapisz plik w formacie .py (na przykład
my_example.py
). A jeśli ten plik ma funkcje,W funkcji wywoływania wystarczy wpisać poniższe linie.
nazwa_pliku: mój_przykład2.py
============================
============================
źródło
import fn
(bez rozszerzenia) i używam ich bezpośrednio w głównym plikufn.my_funcion()
. Kiedy używamimport fn.py
próbuje załadować plik py.py, który nie istnieje. Używaniefrom fn.py import funcname
też nie działało. Dziękuję Ci.Zmień nazwę modułu na coś innego niż „plik”.
Następnie upewnij się, że wywołujesz funkcję, która:
1) jeśli importujesz cały moduł, podczas wywoływania go powtórz nazwę modułu:
lub
2) lub jeśli importujesz określone funkcje, funkcje z aliasem lub wszystkie funkcje za pomocą *, nie powtarzasz nazwy modułu:
lub
lub
źródło
Funkcje z pliku .py (mogą oczywiście znajdować się w innym katalogu) można po prostu zaimportować, najpierw pisząc katalogi, a następnie nazwę pliku bez rozszerzenia .py:
A później być używane:
function_name()
źródło
Inside MathMethod.Py.
Wewnątrz Main.Py
Wyjście: 1200
źródło
Nie musisz dodawać
file.py
.Po prostu trzymaj plik w tej samej lokalizacji z plikiem, z którego chcesz go zaimportować. Następnie wystarczy zaimportować funkcje:
źródło
Plik powinien znajdować się w tym samym miejscu, co pliki Pythona, które próbujesz zaimportować. Wystarczy „z funkcji importu plików”.
źródło
dodaj kropkę (.) przed nazwą pliku, jeśli chcesz zaimportować ten plik, który znajduje się w tym samym katalogu, w którym uruchamiasz swój kod.
Na przykład korzystam z pliku o nazwie a.py i chcę zaimportować metodę o nazwie addFun zapisaną w b.py, a b.py znajduje się w tym samym katalogu
z .b importu addFun
źródło
Załóżmy, że plik, który chcesz wywołać, to inny plik.py, a metodą, którą chcesz wywołać, jest metoda1, a następnie najpierw zaimportuj plik, a następnie metodę
jeśli metoda1 jest częścią klasy, niech klasa będzie klasą1, to
następnie utwórz obiekt klasy1, załóżmy, że nazwa obiektu to ob1
źródło
w moim przypadku nazwałem mój plik
helper.scrap.py
i nie mogłem go uruchomić, dopóki nie zmienię nahelper.py
źródło