2017-08-16 92 views
0

進行測試時,我有一個包含類和函數和缺少必要的依賴與py.test

if __name__ == "__main__": 
    ... 

構建一個python文件。我想用py.test來測試這個文件中定義的類。對於我的第一個「hello world」測試,我的測試文件只導入要測試的文件。在PyCharm

運行py.test在

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'] 

我的文件但是結果與試驗時,有import語句

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 

我暢達environment.yml是

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 

什麼這裏是問題嗎?

+0

希望它會幫助https://stackoverflow.com/questions/42973666/importerror-missing-required-dependencies-numpy – Anup

+0

如果你是從conda環境運行,你需要指出你的pycharm使用那個環境。 – BoboDarph

+0

@Anup:鏈接建議我刪除「.pyc」文件,但我沒有在我的文件夾中看到任何文件。 – Make42

回答

0

我不是很確定什麼幫助,但我重新安裝/更新numpy和熊貓與conda install ...。我仍然留下錯誤的文件名稱錯誤。在嘗試了很多東西之後,我發現 - 儘管我使用pytest,而不是庫unittest - 我無法命名所有測試文件都是「單元測試」的文件夾。重命名爲「unittests」解決了這個問題。現在一切正常。

+0

避免使用與[標準庫模塊]相同的名稱通常是一個好主意(https://docs.python.org/3/py-modindex .html),因爲依賴於stdlib的模塊將最終導入你的模塊。如果模塊不能重命名,可以通過將模塊移動到一個包下(一個包含\ _ \ _ init \ _ \ _。py的目錄)來避免導入問題。 – theY4Kman