簡體   English   中英

為什么 python 不能從我創建的模塊中導入簡單的 function?

[英]Why can't python import a simple function from a module I created?

我正在嘗試做一些 numpy 或 scipy 軟件包未涵蓋的數學運算。 由於我必須多次進行這些計算,我想我會在自己的mathystuff.py模塊中創建自己的 function 並將其導入我的工作區。 很簡單,除了 python 不喜歡導入 function:這就是我所做的:

首先,我創建了我的文件mathystuff.py ,它位於我的venv/lib/python3.7/site-packages/文件夾中,就像我的模塊的 rest 一樣。

import numpy as np

def mathfunction(input1, input2):
     #do some math calculations here - lots of np.stuff()
     #and some more math calculations here, you get it
     return answer

就那么簡單。 在我的主要項目中,我簡單地調用:

from mathystuff import mathfunction

我遇到錯誤的地方cannot import name 'mathfunction' from 'mathystuff'將我指向.py文件的正確位置。 我之前已經做過一百萬次了,甚至用我在同一個項目中制作的其他模塊也做過這個,那么為什么會發生這種情況呢?

可能有很多原因,但根據提供的有限信息,我將 go 與我認為最有可能的那些。 (PS 我會評論問問題,但不幸的是我沒有足夠的代表)。

檢查是否:

  • 您的虛擬環境已激活。 (我知道這聽起來很傻,但可能會忘記激活 venv)
  • 如果它處於活動狀態,則通過在終端中輸入which python來檢查 python 的位置(或者如果您使用 python3 運行代碼,則輸入which python3 python3 )。 這將返回目錄 python (例如: path/to/folder/venv/bin/python3 )。 在處理多個 venv 時,很容易混淆並在venvA處於活動狀態時venvB
  • 如果以上所有檢查,go 進入venv/lib/目錄並確認您那里只有一個 python 目錄。 venv/lib/python3.8venv/lib/python3.7 如果由於某種原因,在 venv/lib/ 中有兩個(或更多)python 版本,請確保您使用的版本是您的模塊所在的版本。

這些是迄今為止我遇到的最常見的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM