1

これが、アプリケーションで使用しているファイル構造です。私の問題は、test_ctd.py ファイルに ctd.py ファイルを表示させることができないことです。

ここに私のディレクトリ構造があります

FileParser
--Parsers
----ctd.py
--tests
----__init__.py
----test_ctd.py
--parse.py

私はinit .py ファイルを使用したことがなく、理解するのに苦労していますが、パスに ctd.py を追加しようとしています。

import sys
import os.path
d = os.path.dirname(os.path.dirname(os.path.abspath('../../')))

from Parsers import ctd

また、parse.py ファイルにコードはありませんが、それを使用してプログラムを開始します。Parsers フォルダーからファイルをインポートできるように、そのための初期化ファイルも必要 ですか?

このプログラム構造内から私のファイルにアクセスする方法についてのヘルプをいただければ幸いです。最終的にはWebサーバーで実行されますが、それが違いを生むかどうかはわかりません...

ありがとう!

4

3 に答える 3

1

__init__.pyファイルを移動し、ディレクトリを絶対パスとして PYTHONPATH にParsers追加します。FileParserたとえば、sys.path.append('full/path/to/FileParser').

于 2013-06-01T23:43:41.130 に答える
1

Python が実際に適切な場所を探していることを確認する必要があります。これを行うには、環境変数を変更してPYTHONPATH、Python パッケージが見つかる場所 (このディレクトリなど) を含めます。__init__.pyディレクトリを Python パッケージとしてマークするためのファイルも必要です。

または、安くてハックな方法は、 を変更することsys.pathです。

import sys
import os
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'Parsers'))
import cdt
于 2013-06-01T23:45:59.187 に答える
1

Parsersから何かをインポートする場合FileParserは、含まれている必要があります。Python でのモジュールのインポートおよび __init__.pyを参照してください。__init__.pyctd.py

次に、のような相対インポートを実行するか、に追加して使用することctd.pyにより、テストスクリプトからインポートできます。from ..Parsers import ctdFileParsersys.pathfrom Parsers import ctd

または、 を含むディレクトリを追加FileParsersys.pathて使用しますfrom FileParser.Parsers import ctd

それが役立つことを願っています。

于 2013-06-01T23:41:00.220 に答える