私は非常に奇妙な問題にぶつかります。インポートで非常に奇妙な問題
編集:詳細を追加:
virtualenv -p python3 testenv
cd testenv
source bin/activate
django-admin startproject blah
cd blah
mkdir modules
vi modules/stash.py
pip install django
pip install stashy
python manage.py shell < modules/stash.py
私はデータベースを作成するデータを同期するスクリプトがあります。
$ python manage.py shell < modules/stash.py
:
$ cat modules/stash.py
import stashy
class SyncProject:
def __init__(self, endpo, user, passw):
import stashy
self.stash = stashy.connect(endpo, user, passw)
access = SyncProject("http://localhost", "test", "test")
を私は私のスクリプトを実行します奇妙なことは、もし私が第二のimport stashy
を置かなければ、それは働かないということです:
NameError: name 'stashy' is not defined
は...わからない私は私の依存関係をインポートするか、どのように間違ったものがある場合私は、スクリプトを実行する方法...
編集:詳細は、エラーメッセージ:
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/[PATH]/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/[PATH]/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/[PATH]/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/[PATH]/python3.6/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/[PATH]/python3.6/site-packages/django/core/management/commands/shell.py", line 92, in handle
exec(sys.stdin.read())
File "<string>", line 6, in <module>
File "<string>", line 4, in __init__
NameError: name 'stashy' is not defined
まず、インデントを修正します。次に、完全なスクリプトを投稿します。あなたのSyncProjectクラスをインスタンス化するものは何もないので、これは問題の原因にはなりません。 –
SyncProject(...)の呼び出しで更新されました – ffyns
インデントを修正する必要があります。 – solarissmoke