2017-06-26 7 views
0

ファイル名がのbasics.pyには、という名前のファイルがありません。 とあります。__init __()機能もあります。 今私はviews.pybasics.pyの機能にアクセスしたい場合。 どうすればいいですか?djangoビューで外部Pythonスクリプトを使用するには?

+0

views.py 'import basics'のimport文を使用してください – utkbansal

+3

https://docs.python.org/3/tutorial/modules.html Pythonの詳細を読む必要があります。 – khajvah

+1

クラスがないのは*通常*です。あなたが州を守っていないなら、絶対に必要はありません。とにかく '__init __()'メソッドはクラス内でのみ使用されます。 –

答えて

0

それは相対的な輸入品に来るときのpython 3は、厳しいルールを持っているので、これはよくある間違いです。

あなたはこのような構造を持っていると仮定します。

myapp 
├── basics.py 
└── views.py 

..ここで、myappはプロジェクトのルートにあります。

basics.pyはこのように見えます。あなたは基本から物事をインポートすることができ

def do_stuff(): 
    pass 

の方法は、その後、私はbasics.pyviews.pyは、同じパッケージ(app)に位置していると仮定する(views.py

from myapp import basics 
from myapp.basics import do_stuff 
from . import basics 
from .basics import do_stuff 

# View code ... 

だろう。

pythonプロジェクトを実行すると、現在のディレクトリがpythonパスに追加されます。プロジェクトのルートからすべてインポートするか、.を使用してローカルパッケージ/ディレクトリからインポートする必要があります。

また、モジュール全体または単一の関数/オブジェクトだけをインポートできることに注意してください。 basicsモジュール全体をインポートする場合は、ビュー内でbasics.do_stuff()を使用してアクセスします。

0

使用:あなたが望むすべての機能を使用するよりも

import basics 

:)

+0

これは、人がPython 2で相対インポートを使用している、またはモジュールがpythonパスのルートにあると仮定しています。 – Grimmy

+0

それは私に、未解決のリファレンス '基本' –

関連する問題