問題の簡単な説明、私は持っています:
dirとファイル構造:
./top.py
./Task/Task.py (was deleted and then renamed as:)
./Task/task.py
top.py
インポートtask.py
。しかし、実行するtop.py
と、task.py
自動的にに変更されることがわかりましたTask.py
。
なぜこうなった?
(私はMac OS 10.6のエディターとしてmvimを使用しています。)
Mac OS X のデフォルトのファイル システムは大文字と小文字を区別しませんが、Charles が言ったように大文字と小文字を保持します (このファイル システムは Mac OS 拡張、またはHFS Plusと呼ばれ、デフォルトでは大文字と小文字を区別しないように構成されています)。したがって、実際には、./Task/Task.py と ./Task/task.py は同じファイルですが (たとえば、Python では Task.py を で読み取ることができopen('task.py')
ます)、ファイルの作成時に使用された名前です。元のケースに保管されています。
本当に Task.py と task.py を区別する必要がある場合は、大文字と小文字を区別するディスク イメージを作成し、それを使用することをお勧めします (この問題はWeb で議論されています)。
OSX 上のファイルの大文字と小文字は、ファイルが最初に作成されたときに保持されます。したがってmv Task.py task.py
、機能しません。ファイルの名前を変更したい場合は、通常、最初に別の名前に変更する必要があります。コマンドラインでこれを行うには、次のようにします。
cd Task
mv Task.py temp.py
mv temp.py task.py
PS ファイルが git リビジョン管理下にある場合、さらに複雑になります。