Rozwiązywanie problemów z urządzeniem GE GLD4900P może być czasem trudne. Aby ułatwić sobie zadanie, najlepiej jest zacząć od zidentyfikowania źródła problemu. Najczęściej jest to złe ustawienie lub uszkodzone elementy. Jeśli problem jest związany z ustawieniami, możliwe jest ich szybkie przywrócenie do ustawień fabrycznych, aby przywrócić urządzenie do działania. Jeśli jednak problem nie jest związany z ustawieniami, należy sprawdzić wszystkie podzespoły, aby sprawdzić, który z nich może być uszkodzony. Po zidentyfikowaniu uszkodzonego elementu można go naprawić lub wymienić.
Ostatnia aktualizacja: Rozwiązywanie problemów Ge Gld4900p
HP Support Assistant to oprogramowanie przeznaczone do konserwacji i rozwiązywania problemów z komputerem lub drukarką HP. Użyj go, aby przeczytać ważne komunikaty, uruchomić diagnostykę, rozwiązać problemy, uzyskać dostęp do specyfikacji produktu, a nawet dowiedzieć się, czy drukarka jest nadal na gwarancji.
Aby otworzyć program HP Support Assistant lub sprawdzić, czy jest już zainstalowany, w systemie Windows wyszukaj HP, a następnie na liście wyników wyszukiwania kliknij pozycję HP Support Assistant.
Aby pobrać i zainstalować program HP Support Assistant, nawet w komputerze innej firmy niż HP, przejdź do HP Support Assistant (w języku angielskim).
Po zainstalowaniu uruchom program HP Support Assistant, dodaj drukarkę do listy urządzeń, a następnie kliknij obraz drukarki, aby uzyskać dostęp do wielu przydatnych narzędzi do rozwiązywania problemów.
Ta przeglądarka nie jest już obsługiwana.
Przejdź na przeglądarkę Microsoft Edge, aby korzystać z najnowszych funkcji, aktualizacji zabezpieczeń i pomocy technicznej.
- Artykuł
- Czas czytania: 13 min
Ten artykuł zawiera informacje ułatwiające rozwiązywanie problemów z funkcjami języka Python w Azure Functions. Ten artykuł obsługuje modele programowania w wersji 1 i 2. Wybierz model, którego chcesz użyć z selektora w górnej części artykułu. Model w wersji 2 jest obecnie w wersji zapoznawczej. Aby uzyskać więcej informacji na temat modeli programowania w języku Python, zobacz Przewodnik dla deweloperów języka Python.
Poniżej przedstawiono sekcje rozwiązywania problemów dotyczące typowych problemów w funkcjach języka Python:
- ModuleNotFoundError i ImportError
- Nie można zaimportować elementu "cygrpc"
- Język Python zakończył pracę z kodem 137
- Język Python zakończył pracę z kodem 139
- Rozwiązywanie problemów z błędami buforów protokołu
- Nie można odnaleźć pakietu
- Pakiet nie został rozwiązany przy użyciu odpowiedniego koła systemu Linux
- Pakiet jest niezgodny z wersją interpretera języka Python
- Pakiet powoduje konflikt z innymi pakietami
- Pakiet obsługuje tylko platformy Windows i macOS
- Jeśli aplikacja funkcji ma
WEBSITE_RUN_FROM_PACKAGE
ustawienie aplikacji, a jej wartość jest adresem URL, pobierz plik, kopiując i wklejając adres URL w przeglądarce. - Jeśli aplikacja funkcji ma
WEBSITE_RUN_FROM_PACKAGE
wartość i jest ustawiona na1
, przejdź dohttps://<app-name>. scm. azurewebsites. net/api/vfs/data/SitePackages
strony i pobierz plik z najnowszegohref
adresu URL. - Jeśli aplikacja funkcji nie ma żadnych poprzednich ustawień aplikacji, przejdź do
https://<app-name>. net/api/settings
adresu URL w obszarzeSCM_RUN_FROM_PACKAGE
. Pobierz plik, kopiując i wklejając adres URL do przeglądarki. - Jeśli sugestie rozwiążą problem, przejdź do
https://<app-name>. net/DebugConsole
strony i wyświetl zawartość w obszarze/home/site/wwwroot
. - Visual Studio CodeAzure Functions Core ToolsPublikowanie ręczne
Upewnij się, że zainstalowano najnowszą wersję rozszerzenia Azure Functions dla Visual Studio Code. Sprawdź, czy plik . vscode/settings. json istnieje i zawiera ustawienie
"azureFunctions. scmDoBuildDuringDeployment": true
. Jeśli tak nie jest, utwórz plik zazureFunctions. scmDoBuildDuringDeployment
włączonym ustawieniem, a następnie ponownie wdróż projekt.Upewnij się, że zainstalowano najnowszą wersję narzędzi Azure Functions Core Tools. Przejdź do lokalnego folderu projektu funkcji i użyj go
func azure functionapp publish <app-name>
do wdrożenia.Jeśli ręcznie publikujesz pakiet w
https://<app-name>. net/api/zipdeploy
punkcie końcowym, upewnij się, że dla obuSCM_DO_BUILD_DURING_DEPLOYMENT
opcji iENABLE_ORYX_BUILD
ustawiono wartośćtrue
. Aby dowiedzieć się więcej, zobacz , jak pracować z ustawieniami aplikacji.Tworzenie zależności natywnych
Upewnij się, że zainstalowano najnowsze wersje platformy Docker i Azure Functions Core Tools. Przejdź do lokalnego folderu projektu funkcji i użyj go
func azure functionapp publish <app-name> --build-native-deps
do wdrożenia.Aktualizowanie pakietu do najnowszej wersji
W najnowszej wersji
https://pypi. org/project/<package-name>
pakietu programu sprawdź sekcję Klasyfikatory:. Pakiet powinien byćOS Independent
zgodny z systemem operacyjnym lubPOSIX:: Linux
zgodnym zPOSIX
systemem operacyjnym. Ponadto język programowania powinien zawierać:Python:: 3
,,Python:: 3. 6
Python:: 3. 9
.Jeśli te elementy pakietu są poprawne, możesz zaktualizować pakiet do najnowszej wersji, zmieniając wiersz
<package-name>~=<latest-version>
w requirements. txt.requirements. txt rękodzielnicza
Niektórzy deweloperzy używają
pip freeze > requirements. txt
polecenia do generowania listy pakietów języka Python dla swoich środowisk programistycznych. Chociaż ta wygoda powinna działać w większości przypadków, mogą wystąpić problemy w scenariuszach wdrażania międzyplatformowych, takich jak tworzenie funkcji lokalnie w systemie Windows lub macOS, ale publikowanie w aplikacji funkcji, która działa w systemie Linux. W tym scenariuszupip freeze
można wprowadzić nieoczekiwane zależności specyficzne dla systemu operacyjnego lub zależności dla lokalnego środowiska deweloperskiego. Te zależności mogą przerwać aplikację funkcji języka Python, gdy jest uruchomiona w systemie Linux.Najlepszym rozwiązaniem jest sprawdzenie instrukcji importu z każdego pliku py w kodzie źródłowym projektu, a następnie zaewidencjonowania tylko modułów w pliku requirements. Ta praktyka gwarantuje, że rozpoznawanie pakietów może być prawidłowo obsługiwane w różnych systemach operacyjnych.
Zastąp pakiet odpowiednikami
Najpierw zapoznaj się z najnowszą wersją pakietu w programie
https://pypi. Ten pakiet zwykle ma własną stronę usługi GitHub. Przejdź do sekcji Problemy w usłudze GitHub i wyszukaj, aby sprawdzić, czy problem został rozwiązany. Jeśli został naprawiony, zaktualizuj pakiet do najnowszej wersji.
Czasami pakiet mógł zostać zintegrowany z biblioteką Standardowa w języku Python (na przykład
pathlib
). Jeśli tak, ponieważ udostępniamy pewną dystrybucję języka Python w Azure Functions (Python 3. 6, Python 3. 7, Python 3. 8 i Python 3. 9), pakiet w pliku requirements. txt powinien zostać usunięty.Jeśli jednak okaże się, że problem nie został rozwiązany i jesteś w terminie, zachęcamy do przeprowadzenia pewnych badań w celu znalezienia podobnego pakietu dla projektu. Zazwyczaj społeczność języka Python udostępnia szeroką gamę podobnych bibliotek, których można użyć.
Rozwiązywanie problemów z nie można zaimportować pliku "cygrpc"
Ta sekcja ułatwia rozwiązywanie problemów z błędami cygrpc w aplikacji funkcji języka Python. Te błędy zazwyczaj powodują następujący komunikat o błędzie Azure Functions:
"Nie można zaimportować nazwy "cygrpc" z 'grpc. _cython'"
Ten błąd występuje, gdy aplikacja funkcji języka Python nie może uruchomić odpowiedniego interpretera języka Python. Główną przyczyną tego błędu jest jeden z następujących problemów:
- Interpreter języka Python niezgodnie z architekturą systemu operacyjnego
- Interpreter języka Python nie jest obsługiwany przez proces roboczy języka Python Azure Functions
Diagnozowanie błędu referencyjnego "cygrpc"
Interpreter języka Python niezgodnie z architekturą systemu operacyjnego
Ta niezgodność jest najprawdopodobniej spowodowana zainstalowaniem 32-bitowego interpretera języka Python w 64-bitowym systemie operacyjnym.
Jeśli korzystasz z systemu operacyjnego x64, upewnij się, że interpreter języka Python w wersji 3. 6, 3. 7, 3. 8 lub 3. 9 jest również w wersji 64-bitowej.
Możesz sprawdzić bitność interpretera języka Python, uruchamiając następujące polecenia:
W systemie Windows w programie PowerShell uruchom polecenie
py -c 'import platform; print(platform. architecture()[0])'
.W powłoce podobnej do systemu Unix uruchom polecenie
python3 -c 'import platform; print(platform.
Jeśli występuje niezgodność między bitowością interpretera języka Python a architekturą systemu operacyjnego, pobierz odpowiedni interpreter języka Python z programu Python Software Foundation.
Interpreter języka Python nie jest obsługiwany przez proces roboczy języka Python Azure Functions
Proces roboczy języka Python Azure Functions obsługuje tylko języki Python w wersji 3. 8 i 3. 9.
Sprawdź, czy interpreter języka Python jest zgodny z oczekiwaną wersją
py --version
w systemach Windows lubpython3 --version
Unix. Upewnij się, że zwracany wynik toPython 3. 6. x
,Python 3. 7. 8. x
lubPython 3. x
.Jeśli wersja interpretera języka Python nie spełnia wymagań dotyczących Azure Functions, zamiast tego pobierz interpreter języka Python w wersji 3. 9 z programu Python Software Foundation.
Rozwiązywanie problemów z komunikatem "Python exited with code 137"
Błędy kodu 137 są zwykle spowodowane problemami z brakiem pamięci w aplikacji funkcji języka Python. W rezultacie zostanie wyświetlony następujący komunikat o błędzie Azure Functions:
"Microsoft. WebJobs. Script. Workers. WorkerProcessExitException: python zakończył pracę z kodem 137"
Ten błąd występuje, gdy aplikacja funkcji języka Python jest zmuszona do zakończenia przez system operacyjny za pomocą sygnału SIGKILL. Ten sygnał zwykle wskazuje błąd braku pamięci w procesie języka Python. Platforma Azure Functions ma ograniczenie usługi, które kończy wszystkie aplikacje funkcji, które przekraczają ten limit.
Odwiedź sekcję samouczka dotyczącą profilowania pamięci w funkcjach języka Python, aby przeanalizować wąskie gardło pamięci w aplikacji funkcji.
Rozwiązywanie problemów z komunikatem "Python exited with code 139" (Rozwiązywanie problemów z komunikatem "Python exited with code 139" (Kod 13
Ta sekcja ułatwia rozwiązywanie problemów z błędami błędów segmentacji w aplikacji funkcji języka Python. Te błędy zazwyczaj powodują następujący komunikat o błędzie Azure Functions:
"Microsoft. WorkerProcessExitException: python zakończył pracę z kodem 139"
Ten błąd występuje, gdy aplikacja funkcji języka Python jest zmuszona do zakończenia przez system operacyjny za pomocą sygnału SIGSEGV. Ten sygnał wskazuje na naruszenie segmentacji pamięci, co może wynikać z nieoczekiwanego odczytu lub zapisu w regionie pamięci z ograniczeniami. W poniższych sekcjach przedstawiono listę typowych głównych przyczyn.
Regresja z pakietów innych firm
W pliku requirements. txt aplikacji funkcji odpiętych pakiet zostanie uaktualniony do najnowszej wersji w każdym wdrożeniu Azure Functions. Dostawcy tych pakietów mogą wprowadzać regresje w najnowszej wersji. Aby rozwiązać ten problem, spróbuj dodać komentarz do instrukcji importu, wyłączyć odwołania do pakietu lub przypiąć pakiet do poprzedniej wersji w requirements.
Odpisanie z źle sformułowanego pliku pkl
Jeśli aplikacja funkcji używa biblioteki pickle języka Python do załadowania obiektu języka Python z pliku pkl, możliwe, że plik zawiera źle sformułowany ciąg bajtów lub nieprawidłowe odwołanie do adresu. Aby odzyskać sprawę po tym problemie, spróbuj oznaczyć
pickle. load()
funkcję jako komentarz.Kolizja połączenia Pyodbc
Jeśli aplikacja funkcji korzysta z popularnego sterownika bazy danych ODBC pyodbc, możliwe, że wiele połączeń jest otwartych w ramach jednej aplikacji funkcji. Aby uniknąć tego problemu, użyj wzorca pojedynczego i upewnij się, że w aplikacji funkcji jest używane tylko jedno połączenie pyodbc.
Rozwiązywanie problemów z błędami w buforach protokołu
W wersji 4. x pakietu Bufory protokołu (Protobuf) wprowadzono zmiany powodujące niezgodność. Ponieważ proces roboczy języka Python dla Azure Functions opiera się na wersji 3. x. x tego pakietu, przypinanie aplikacji funkcji do korzystania z wersji 4. x może przerwać działanie aplikacji. W tej chwili należy również unikać używania wszystkich bibliotek, które wymagają narzędzia Protobuf w wersji 4.
Przykładowe dzienniki błędów:
[Information] File "/azure-functions-host/workers/python/3. 8/LINUX/X64/azure_functions_worker/protos/shared/NullableTypes_pb2. py", line 38, in <module>[Information] _descriptor. FieldDescriptor([Information] File "/home/site/wwwroot/. python_packages/lib/site-packages/google/protobuf/descriptor. py", line 560, in __new__[Information] _message. Message. _CheckCalledFromGeneratedFile()[Error] TypeError: Descriptors cannot be created directly.[Information] If this call came from a _pb2. py file, your generated code is out of date and must be regenerated with protoc >= 3. 19. 0.[Information] If you cannot immediately regenerate your protos, some other possible workarounds are:[Information] 1. Downgrade the protobuf package to 3. 20. x or lower.[Information] 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).[Information] More information: https://developers. google. com/protocol-buffers/docs/news/2022-05-06#python-updates
Ten problem można rozwiązać na jeden z dwóch sposobów:
Ustaw ustawienie aplikacji PYTHON_ISOLATE_WORKER_DEPENDENCIES na wartość.
1
Przypnij protobuf do elementu innego niż 4. wersja, jak w poniższym przykładzie:
protobuf >= 3. 3, == 3. *
Wiele procesów roboczych języka Python nie jest obsługiwanych
Obecnie w modelu programowania w wersji 2 nie jest obsługiwane wiele procesów roboczych języka Python. Dokładniej mówiąc, włączenie inteligentnej współbieżności przez ustawienie
FUNCTIONS_WORKER_PROCESS_COUNT
na większe niż1
nie jest obsługiwane w przypadku funkcji opracowanych przy użyciu modelu w wersji 2.Rozwiązywanie problemów z komunikatem "Nie można załadować pliku lub zestawu"
Jeśli wystąpi ten błąd, może to być spowodowane użyciem modelu programowania w wersji 2. Ten błąd wynika ze znanego problemu, który zostanie rozwiązany w nadchodzącej wersji.
Ten konkretny błąd może zostać odczytany:
"DurableTask. Netherite. AzureFunctions: Nie można załadować pliku ani zestawu "Microsoft. Extensions. DurableTask, Version=2. 0, Culture=neutral, PublicKeyToken=014045d636e89289".
System nie może odnaleźć określonego pliku".Ten błąd może wystąpić z powodu problemu z buforowanym pakietem rozszerzeń. Aby rozwiązać ten problem, możesz uruchomić następujące polecenie,
--verbose
aby wyświetlić więcej szczegółów:func host start --verbose
Jeśli po uruchomieniu polecenia zauważysz, że
Loading startup extension <>
nieLoaded extension <>
następuje to dla każdego rozszerzenia, prawdopodobnie występuje problem z buforowaniem.Aby rozwiązać ten problem:
Znajdź ścieżkę . azure-functions-core-tools, uruchamiając polecenie:
func GetExtensionBundlePath
Usuń katalog . azure-functions-core-tools.
BashProgram PowerShellCmdrm -r <insert path>/. azure-functions-core-tools
Remove-Item <insert path>/. azure-functions-core-tools
rmdir <insert path>/. azure-functions-core-tools
Rozwiązywanie problemów z komunikatem "Nie można rozwiązać problemu z połączeniem usługi Azure Storage"
Ten błąd może zostać wyświetlony w lokalnych danych wyjściowych jako następujący komunikat:
"Microsoft. DurableTask: Nie można rozpoznać połączenia usługi Azure Storage o nazwie "Storage".
wartość nie może być równa null. (Parametr 'provider')"Ten błąd jest wynikiem lokalnego ładowania rozszerzeń z pakietu. Aby rozwiązać ten błąd, wykonaj jedną z następujących czynności:
Użyj emulatora magazynu, takiego jak Azurite. Ta opcja jest dobrym rozwiązaniem, jeśli nie planujesz używania konta magazynu w aplikacji funkcji.
Utwórz konto magazynu i dodaj parametry połączenia do
AzureWebJobsStorage
zmiennej środowiskowej w pliku localsettings. json. Użyj tej opcji, jeśli używasz wyzwalacza lub powiązania konta magazynu z aplikacją lub jeśli masz istniejące konto magazynu. Aby rozpocząć, zobacz artykuł Tworzenie konta magazynu.Problem z wdrożeniem
W Azure Portal wybierz pozycjęKonfiguracjaustawień>, a następnie upewnij się, że
AzureWebJobsFeatureFlags
ustawienie aplikacji ma wartośćEnableWorkerIndexing
. Jeśli nie zostanie znalezione, dodaj to ustawienie do aplikacji funkcji.Następne kroki
Jeśli nie możesz rozwiązać problemu, skontaktuj się z zespołem Azure Functions:
Rozwiązywanie problemów z modułem ModuleNotFoundError
Ta sekcja ułatwia rozwiązywanie problemów z błędami związanymi z modułami w aplikacji funkcji języka Python. Te błędy zwykle powodują następujący komunikat o błędzie Azure Functions:
"Wyjątek: ModuleNotFoundError: brak modułu o nazwie "module_name".
Ten błąd występuje, gdy aplikacja funkcji języka Python nie może załadować modułu języka Python. Główną przyczyną tego błędu jest jeden z następujących problemów:
Wyświetlanie plików projektu
Aby zidentyfikować rzeczywistą przyczynę problemu, należy pobrać pliki projektu języka Python uruchamiane w aplikacji funkcji. Jeśli nie masz plików projektu na komputerze lokalnym, możesz je uzyskać w jeden z następujących sposobów:
Pozostała część tego artykułu pomaga rozwiązać problemy z potencjalnymi przyczynami tego błędu, sprawdzając zawartość aplikacji funkcji, identyfikując główną przyczynę i rozwiązując konkretny problem.
Diagnozowanie błędu ModuleNotFoundError
W tej sekcji szczegółowo przedstawiono potencjalne główne przyczyny błędów związanych z modułem. Po zapoznaniu się z prawdopodobną główną przyczyną można przejść do powiązanego ograniczenia ryzyka.
Nie można odnaleźć pakietu
Przejdź do lub . python_packages/lib/python3. 6/site-packages/<package-name>
. python_packages/lib/site-packages/<package-name>
. Jeśli ścieżka pliku nie istnieje, prawdopodobnie jest to główna przyczyna tej brakującej ścieżki.
Użycie narzędzi innych firm lub nieaktualnych podczas wdrażania może spowodować ten problem.
Aby rozwiązać ten problem, zobacz Włączanie zdalnej kompilacji lub Tworzenie zależności natywnych.
Pakiet nie jest rozpoznawany przy użyciu odpowiedniego koła systemu Linux
Przejdź do lub . 6/site-packages/<package-name>-<version>-dist-info
. python_packages/lib/site-packages/<package-name>-<version>-dist-info
. Użyj ulubionego edytora tekstów, aby otworzyć plik wheel i sprawdzić sekcję Tag:. Problem może polegać na tym, że wartość tagu nie zawiera systemu Linux.
Funkcje języka Python działają tylko w systemie Linux na platformie Azure. Środowisko uruchomieniowe usługi Functions w wersji 2. x działa w systemie Debian Stretch, a środowisko uruchomieniowe v3. x działa w systemie Debian Buster. Oczekuje się, że artefakt będzie zawierać poprawne pliki binarne systemu Linux. Jeśli używasz flagi --build local
w narzędziach Core Tools, innych firmach lub nieaktualnych narzędziach, może to spowodować użycie starszych plików binarnych.
Aby rozwiązać ten problem, zobacz Włączanie kompilacji zdalnej lub Tworzenie zależności natywnych.
Pakiet jest niezgodny z wersją interpretera języka Python
Przejdź do lub . W edytorze tekstów otwórz plik METADATA i sprawdź sekcję Klasyfikatory:. Jeśli sekcja nie zawiera
Python:: 3
elementów, Python:: 3. 6
, Python:: 3. 7
, Python:: 3. 8
lub Python:: 3. 9
, wersja pakietu jest zbyt stara lub, najprawdopodobniej, nie jest już obsługiwana.
Możesz sprawdzić wersję języka Python aplikacji funkcji z Azure Portal. Przejdź do strony zasobów Przegląd aplikacji funkcji, aby znaleźć wersję środowiska uruchomieniowego. Wersja środowiska uruchomieniowego obsługuje wersje języka Python zgodnie z opisem w omówieniu wersji środowiska uruchomieniowego Azure Functions.
Aby rozwiązać ten problem, zobacz Aktualizowanie pakietu do najnowszej wersji lub Zastępowanie pakietu odpowiednikami.
Pakiet powoduje konflikt z innymi pakietami
Jeśli sprawdzono, że pakiet został poprawnie rozwiązany z odpowiednimi kołami systemu Linux, może wystąpić konflikt z innymi pakietami. W niektórych pakietach dokumentacja PyPi może wyjaśnić niezgodne moduły. Na przykład w azure 4. 0
pliku znajdziesz następującą instrukcję:
"Ten pakiet nie jest zgodny z usługą azure-storage.Jeśli zainstalowano usługę Azure-Storage lub zainstalowano platformę Azure 1. x/2. x i nie odinstalowujesz usługi Azure-Storage, najpierw musisz odinstalować usługę azure-storage".
Dokumentację dotyczącą wersji pakietu można znaleźć w temacie https://pypi. org/project/<package-name>/<package-version>
.
Pakiet obsługuje tylko platformy Windows i macOS
Otwórz plik za requirements. txt
pomocą edytora tekstów i sprawdź pakiet w pliku https://pypi. org/project/<package-name>
. Niektóre pakiety są uruchamiane tylko na platformach Windows i macOS. Na przykład narzędzie pywin32 działa tylko w systemie Windows.
Błąd Module Not Found
może nie wystąpić podczas korzystania z systemu Windows lub macOS na potrzeby programowania lokalnego. Jednak nie można zaimportować pakietu w Azure Functions, który używa systemu Linux w czasie wykonywania. Ten problem może być spowodowany użyciem funkcji pip freeze
eksportowania środowiska wirtualnego do requirements. txt z komputera z systemem Windows lub macOS podczas inicjowania projektu.
Aby rozwiązać ten problem, zobacz Replace the package with equivalents (Zastępowanie pakietu odpowiednikami) lub Handcraft requirements. txt.
Ograniczanie błędu ModuleNotFoundError
Poniżej przedstawiono potencjalne środki zaradcze dotyczące problemów związanych z modułami. Użyj wcześniej wymienionych diagnoz, aby określić, które z tych środków zaradczych należy spróbować.
Włączanie kompilacji zdalnej
Upewnij się, że włączono kompilację zdalną. Sposób, w jaki upewniasz się, zależy od metody wdrażania.