1

非常に大規模なマルチパッケージ、マルチアプリ Django (1.4.5) プロジェクトを、Django のネイティブ テスト ランナーの使用から py.test (2.3.5) に切り替えています。setup.cfg (py.test オプションを管理するため) と conftest.py (setup.py を無視するため) を作成した後、最低レベルのパッケージである web-framework のテストが検出され、エラーなしで実行されました。Web フレームワークを必要とする上位レベルのパッケージで py.test (setup.cfg および conftest.py を使用) を実行すると、次のエラーが表示されます。

ERROR: Could not import settings 'high_level_package.test_settings' (Is it on sys.path?): No module named web_framework.settings

私は仮想環境を使用しており、web-framework は次の場所の venv にあります: ENV/lib/python2.7/site-packages/

パッケージのルートディレクトリにビルドされたvenvと、プロジェクトパスの外にビルドされたvenvを試してみましたが、役に立ちませんでした。また、上位レベルのパッケージのルート ディレクトリにある Python 対話型コマンド ラインから web_framework.settings をインポートできます。

現在の conftest.py は次の行だけです: collect_ignore = ["setup.py"] その上に次の行を追加しようとしました:

import os
import sys

sys.path.append(os.path.dirname(__file__))

また、上記の sys.path.append で web-framework パッケージへのパスをハードコーディングしてみました。

どちらも機能しませんでした。

関連する場合、私の setup.cfg は次のとおりです。

[pytest]
python_files = *test*.py
norecursedirs = node_modules ENV
addopts = --junitxml=python_result.xml, --doctest-modules

編集:トレースバック関係について言及するのを忘れていました。higher_level_package.test_settings は、higher_level_package.settings をインポートし、それ自体が web_framework.settings をインポートします。

4

2 に答える 2

1

それを機能させるには、ワークツリーを開発インストールするか、追加する必要があります。PYTHONPATH 環境変数へ

于 2013-09-18T20:55:22.433 に答える
-1

メインの python web サイト モジュールが配置されているフォルダーに移動します。

django-admin runserver --settings=mysite.settings

mysiteが作成された場所

django-admin startproject mysite
于 2014-01-25T01:13:55.180 に答える