2016-06-08 104 views
1

我想要一個名爲MTpy的Python模塊在我的計算機上運行;這個軟件包允許處理和處理大地電磁(地球物理)數據。 我在Windows 10下使用Python 3.5與Anaconda/Spyder IDE。 我剛剛開始使用Python,所以如果我的問題看起來微不足道,我很抱歉!無法從Python 3.5下的導入模塊訪問函數

我的問題是,我可以導入mtpy模塊及其所有子模塊,但我不能調用這些子文件夾中包含的任何功能。

例如,mtpy包含一個稱爲分析的子模塊。

我可以成功運行:

import mtpy.analysis 

運行

help(mtpy.analysis) 

將返回:

Help on package mtpy.analysis in mtpy: 

NAME 
    mtpy.analysis 

PACKAGE CONTENTS 
    distortion 
    geometry 
    niblettbostick 
    pt 
    staticshift 
    zinvariants 

FILE 
    c:\users\sheldon\anaconda3\lib\site-packages\mtpy-0.0.1-py3.5.egg \mtpy\analysis\__init__.py 

然而,當試圖訪問包含在分析文件夾中的distortion.py功能,我收到以下錯誤消息:

Traceback (most recent call last): 

File "<ipython-input-56-16963e2f7b1c>", line 1, in <module> 
mtpy.analysis.distortion() 

AttributeError: module 'mtpy.analysis' has no attribute 'distortion' 

僅供參考,我的模塊(mtpy)和子模塊文件夾(例如,分析)包含init文件。

非常感謝您的幫助!

乾杯,

謝爾頓

+0

*「訪問'distortion.py'函數」*? –

+0

嗨摩西,非常感謝您的快速回復。對不起,如果我不夠清楚!分析文件夾中包含一個名爲distortion.py的文件。在Python終端中鍵入mtpy.analysis.distortion()時,我會獲得上述錯誤消息。 – Sheldon

+0

你不能這樣對待模塊。做'從mtpy.analysis導入失真'然後通過''distortion.foo()調用'''失真'模塊中的函數' –

回答

1

distortion.py不是的功能它是一個子包的analysis它不是調用。您可以使用在mtpy.analysis.distortion中定義的方法。您可以在python 3 modules tutorial上獲得更多信息。

祝你好運!

+0

非常感謝您的回覆,Andriy。我沒有意識到「扭曲」是「分析」的一個子模塊。你的答案解決了我的問題! – Sheldon

+0

@Sheldon嘿,不客氣,如果它解決了你的問題,你能標記答案被接受嗎? –