2 votes

Le script Python s'exécute dans Spyder mais pas dans la ligne de commande

J'ai un script qui s'exécute sans erreur en utilisant Spyder. Le même script génère des erreurs lorsqu'il est exécuté à partir de l'invite de commande. Je ne sais pas pourquoi je reçois des erreurs. J'ai passé la plupart d'hier à essayer de comprendre pourquoi je reçois les erreurs et j'ai échoué. Donc je suis ici.

À la ligne 9 de mon script j'ai :

import numpy
import pandas
import pyodbc

le reste du code exécute des requêtes odbc, manipule les résultats de la requête et sauvegarde les résultats de la requête manipulés ailleurs.

Mon script s'exécute sans erreur dans Spyder.

J'ai essayé d'exécuter le script à l'invite de commande en tant qu'administrateur en utilisant le code ci-dessous (j'ai remplacé le chemin par "C:\Users\RAdams\AppData\etc") :

C:\path\pythonw.exe C:\path\receiving3.pyw 1>stdout.txt 2>stderr.txt

Après l'exécution, "stdout.txt" est vide et "stderr.txt" contient :

Traceback (most recent call last):
  File "C:\path\receiving3.pyw", line 9, in 
    import numpy
  File "C:\path\lib\site-packages\numpy\__init__.py", line 140, in 
    from . import _distributor_init
  File "C:\path\lib\site-packages\numpy\_distributor_init.py", line 34, in 
    from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.

Avez-vous une idée pourquoi cela fonctionnerait dans Spyder mais pas dans l'invite de commande ? Devrais-je utiliser autre chose que l'invite de commande ? Mon objectif est de faire fonctionner cela dans le Planificateur de tâches de Windows - je pensais que le faire fonctionner avec succès dans l'invite de commande serait une étape préalable appropriée.

Aussi : Hier j'ai réinstallé miniconda. En utilisant conda, j'ai ensuite installé jupyter, matplotlib, numpy, openpyxl, pandas, pyodbc, scikit-learn, seaborn et spyder dans base. Je n'ai créé aucun environnement.

2voto

RichardAdams Points 51

J'ai créé un fichier .bat avec

c:
call C:\Users\RAdams\AppData\Local\Continuum\miniconda3\Scripts\activate base
pythonw C:\Users\RAdams\blahblah\receiving3.pyw
conda deactivate

En utilisant le fichier activate.bat dans miniconda3/scripts, je peux utiliser l'environnement dans lequel numpy a été créé (ce qui explique pourquoi numpy ne fonctionnait pas avant).

Tout fonctionne maintenant - hourra!

0voto

lavish pagaria Points 1

La première solution consiste à essayer de l'exécuter dans Anaconda Prompt si vous avez installé Spyder via Anaconda. Si cela ne fonctionne pas, essayez de changer l'emplacement du code (fichier cible) en {cd C:\chemin}

puis exécutez le code normalement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X