最近、PyCharmの使用中にコード内で相対パスを使用できなくなりました。例えば、単純なopen('test.txt', 'r')
は動作しません-その結果、実行中のpyファイルと同じレベルにファイルが存在することを確信しています。 PyCharmはこのエラーを返します。
FileNotFoundError:[Errno 2]そのようなファイルまたはディレクトリはありません:
StackOverflowでオンラインで回答を読んだ後、次のような複数のオプションを試しました。
test.txt
を./test.txt
に変更これらのオプションはどれも役に立たなかった。 PyCharmに現在の作業ディレクトリを更新するように(または現在の作業ディレクトリがどこにあると思われるかを見るために)伝えることができますか?
前もって感謝します!
編集:ターミナルウィンドウでスクリプトを実行すると動作することに注意してください。これは、スクリプトではなくPyCharmの問題のようです。
私はPycharm 4.5を持っているので、状況は少し変わったかもしれません。
[設定]> [プロジェクト]> [プロジェクト構造]に移動してください
このダイアログで、ソースコードが含まれているフォルダーをクリックし、メニューの青いフォルダーをクリックして、「ソース」フォルダーとして記録します。私はこれがPycharmのパスの問題の多くを修正すると信じています
「コンテンツルート」へのリンクは次のとおりです。 https://www.jetbrains.com/pycharm/help/content-root.html
変更:「実行」>「構成の編集」>「作業ディレクトリ」。特定のプロジェクトの作業ディレクトリを設定します。 (これはMac上にあります)
__file__
はファイルパスを指します。したがって、次を使用して同じディレクトリ内のファイルを参照できます。
import os
dirpath = os.path.dirname(__file__)
filepath = os.path.join(dirpath, 'test.txt')
open(filepath, 'r')
PyCharmで、「構成の実行/編集...」をクリックします
次に、「Python」ドロップダウンメニューでスクリプトファイルを見つけます。 「作業ディレクトリ」エントリを確認し、必要に応じて変更します。
私も数分前に同じ問題を抱えていました...しかし、PyCharmの最新バージョンでは、そのファイルの相対パスを使用するだけで解決されます。たとえば、単純なf = open( 'test'、 'r' ) 動作します。
時々違う。 Pycharmのツールバーで[実行]をクリックしてから[構成の編集...]をクリックして問題を解決し、インタープリターを別の実際のインタープリターに変更しました。設定でそれを変更するだけでは役に立ちませんが、この操作はすでに役に立ちます;)
Macユーザー向けに少し説明。 Macでは、上記の@andereが作業ディレクトリを設定するのに適しています。ただし、コードが別のフォルダーにある場合は、working_dir/src/
(従来のJava/scalaファイル構造のように)その場合、ソースルートを設定する必要があります。 MacのPyCharmでは、src/
folder> [ディレクトリをマーク]> [ソースルート]。同様の多くのインポートの問題を助けてくれました。これが誰かを助けることを願っています。