2012-06-21 130 views
-4

我正在用Pyramid框架練習Python。如何創建一個函數py並調用這些函數?

我創建了一個PY,myfuncs.py,在我的主包文件夾中,也有一個瀏覽文件夾views.py內,並與其他文件夾的靜態文件和模板(如金字塔腳手架創建)沿Models文件夾(型號內)。

我想定義位於myproject包根目錄下的myfuncs.py中的函數和類,然後從位於它們各自視圖和模型文件夾中的任何視圖和模型中訪問它們。

我該如何做到這一點?我嘗試導入,但它不會工作。

+1

-1「我嘗試導入但它不會工作。 「這意味着什麼。顯示你的代碼和錯誤。 – Marcin

+0

認真嗎?你想看到「導入myfuncs」?你在說什麼代碼?這就是我正在問的問題。 – Phil

+0

@Phil不,Marcin希望看到你的'myfuncs'模塊的代碼和你得到的錯誤信息。 – brandizzi

回答

6

想象的文件夾和文件的這種結構:

MyFuncs (folder) 
    __init__.py (can be completely empty) 
    utilFunctions.py 
    genericFunctions.py 
    uselessFunctions.py 
    Views (folder) 
     __init__.py (again!!) 
     views.py 

現在你可以「進口」的文件夾(在現實中導入__初始化__.py使用該文件夾的名稱,但這是現在去尾巴) 一定要正確設置PYTHONPATH。

例如:

import MyFuncs.utilFunctions 
from MyFuncs.Views import views 
import MyFuncs.uselessFunctions as nonsenseFunctions 

etc.etc。

這__初始化__.py必須要導入

在views.py你只需做任何文件夾中:

from MyFuncs import utilFunctions 

utilFunctions.aFunctionYouCode() 
+0

親愛的Dan Niero,謝謝!從ProjectFolderName import PyFileContainingFunctions取得了訣竅。非常感謝你! – Phil

+0

很高興有用。一段時間後,一切都會變得清晰。我記得當我第一次開始用Python編碼時遇到了同樣的麻煩。 –

1

您必須在根文件夾中的__init__.py,並與導入:

import functions 

那麼你應該能夠調用的函數與functions.<functionname>()

+0

我myfuncs.py是在主文件夾中已經有主__init__.py我做了這個,但它不工作。 – Phil

+0

您也可以嘗試將#!/ usr/bin/python添加到文件頂部。我記得有這個問題,這對我有用。 – wachpwnski