2017-08-16 9 views
0

Testen habe ich eine Python-Datei, die Klassen und Funktionen und einerforderliche Abhängigkeiten fehlen, wenn sie mit py.test

if __name__ == "__main__": 
    ... 

Konstrukt enthält. Ich möchte eine Klasse testen, die in dieser Datei mit py.test definiert ist. Für meinen ersten "Hallo Welt" -Test importiert meine Testdatei nur die zu testende Datei.

Lauf py.test in PyCharm führt jedoch in

raceback (most recent call last): 
    File "[...]/unittest/datageneration_test.py", line 1, in <module> 
    from main.datageneration import * 
    File "[...]/main/datageneration.py", line 1, in <module> 
    import pandas as pd 
    File "[...]/lib/python3.6/site-packages/pandas/__init__.py", line 19, in <module> 
    "Missing required dependencies {0}".format(missing_dependencies)) 
ImportError: Missing required dependencies ['numpy'] 

Meine Datei geprüft werden muss, um die Import-Anweisungen

import pandas as pd 
import numpy as np 
from scipy.special import expit 
import sys 
import os 
import scipy.io.wavfile as wav 
import json 
import uuid 

Mein Conda environment.yml ist

channels: 
- conda-forge 
- defaults 
dependencies: 
- pandas=0.20.3 
- numpy=1.13.1 
- ggplot=0.11.5 
- python=3.6.2 
- pytest=3.2.1 

Was ist das Problem hier?

+0

Ich hoffe, es hilft https://stackoverflow.com/questions/42973666/importerror-missing-required-dependencies-numpy – Anup

+0

Wenn Sie von einer Conda-Umgebung ausgeführt werden, müssen Sie Ihre pycharm zeigen, diese Umgebung zu verwenden. – BoboDarph

+0

@Anup: Der Link schlägt vor, ich ".pyc" Dateien löschen, aber ich sehe keine in meinen Ordnern. – Make42

Antwort

0

Ich bin nicht ganz sicher, was geholfen hat, aber ich neu installiert/aktualisiert numpy und Pandas mit conda install .... Ich hatte immer noch einen Fehler mit falschen Dateinamen. Nachdem ich viele Sachen ausprobiert habe, habe ich herausgefunden, dass - obwohl ich pytest verwendet habe, nicht die Bibliothek unittest - ich den Ordner nicht benennen konnte, in dem alle meine Testdateien "unittest" sind. Das Umbenennen in "Unittests" hat das gelöst. Jetzt funktioniert alles.

+0

Es ist normalerweise eine gute Idee, die gleichen Namen zu verwenden wie für [Standard-Bibliotheksmodule] (https://docs.python.org/3/py-modindex) .html), weil Module, die von der stdlib abhängig sind, Ihr Modul importieren. Wenn das Modul nicht umbenannt werden kann, kann das Importproblem vermieden werden, indem das Modul unter ein Paket (ein Verzeichnis mit \ _ \ _ init \ _ \ _. Py) verschoben wird. – theY4Kman

Verwandte Themen