2017-11-30 8 views
1

私は自分のゲームをリファクタリングしていくつかのファイルを/ lib/[下のファイル構造]というサブディレクトリに置いています。これらのファイルのうち2つはmedia.pyというpythonファイルです。メディアと呼ばれるフォルダがあります。 media.pyは、このコードのほんの数行です:blue = pygame.image.load(os.path.join('media', 'blue.png')).convert_alpha() media.pyとmediaフォルダをlibに置きmedia.pyを実行すると、エラーは発生しません。しかし、私がMain.pyを実行してMedia.pyを呼び出してインポートしようとすると、同じサブディレクトリにあってもmedia.pyがmediaフォルダ内のファイルを見つけることができず、前。私は完全なファイルパスとos.path.abspathを使用しようとしましたが、いずれも動作しませんし、同じエラーを発生させます。 main.pyでエラーが発生しPygameはサブディレクトリ内に画像フォルダを見つけられません

相続人面積:

Game 
| 
| - Lib 
| | 
| | - Media 
| |  | 
| |  blue.png, along with many other images 
| Media.py 
| | 
| Fetch.py 
| | 
| gamewide.py 

答えて

2

コードがスタートディレクトリに依存します:

sys.path.insert(0, './lib') 
import media 

は、ここに私のファイル構造です。あなたがイメージファイルがMedia.pyと同じディレクトリと

その後__file__オブジェクトのディレクトリ名であるという事実を使用することができることから

は独立しているように:

blue = pygame.image.load(os.path.join(os.path.dirname(__file__), 'Media','blue.png')).convert_alpha() 

は、トリックを行います

+0

申し訳ありませんが、私はこれを後で試してみます。 – SnivyDroid

+0

それは働いた!どうもありがとうございます! @ジャン・フランソワ・ファーブル – SnivyDroid

関連する問題