1

動作中の Windows Python アプリケーションを Linux に移植するのに問題があります。私はコードを書いておらず、Python を学習しているだけなので、いくつかの問題があります。投げ続けている問題を修正するのに苦労しています。だから、ここに私が立ち往生している一種のエラーがあります

Traceback (most recent call last):
File "alpha_beta", line 237, in <module>
main()
File "alpha_beta", line 185, in main
ABCCmd()
File "alpha_beta.py", line 74, in ABCCmd

File "C:\softs\Python\Lib\shutil.py", line 80, in copy
File "C:\softs\Python\Lib\shutil.py", line 47, in copyfile
IOError: [Errno 13] Permission denied: '/myPath/XFiles.bin.addr_patched

それを修正する方法についての指針は大歓迎です

編集:

1) 私が立ち往生しているということは、エラーのトレースバックが C:\softs\Python\Lib に送られるということですが、実際には現在、このコードを Ubuntu で実行しています。トレースバックが Windows ライブラリを参照する理由

2)私を悩ませているもう1つのことは、IOErrorがあると言うことです。しかし、拒否されたものに許可を追加しようとすると、chmodが表示されます:/ myPath/xFiles.bin.addr_patchedの許可を変更する:操作は許可されていません:

あまり役に立たないと思ったので、モジュールをコメントアウトしました。とにかく移植の問題について話し合っているので、問題は同じで修正も似ているはずなので、この追加の問題も提起できると思いました。#pdb モジュールを Python コードに含めると、次のエラーが発生します。

traceback (most recent call last):
File "alpha_beta", line 6, in <module>
import pdb
File "C:\softs\Python\Lib\pdb.py", line 14, in <module>
File "C:\softs\Python\Lib\pprint.py", line 39, in <module>
ImportError: No module named cStringIO 

私は importer_Cache を見て、このように見えます

'': None, '/usr/lib/python2.6/plat-linux2': None, '/usr/lib/python2.6/': None
'/usr/lib/pymodules/python2.6/gtk-2.0': None, '/usr/lib/python2.6/lib-tk': None,
'/usr/lib/python2.6/lib-old': <imp.NullImporter object at 0x7f1269048070>, '/usr/
/python2.6/dist-packages/gtk-2.0': None, '/usr/lib/python2.6/dist-packages/PIL': None,
'/usr/local/lib/python2.6/dist-packages': None, '/usr/lib/python2.6/dist-packages':
None

*解決済み: Python スクリプトを別の場所から実行させる奇妙なラッパーがスクリプトにありました。それでも方法がわかりません。python myScript.py として直接実行するようにスクリプトを変更した後、正常に実行されます。とにかく助けてくれてありがとう

4

1 に答える 1

3

エラー メッセージに Windows と Unix のスタイルのパスが混在していることから、OS 固有のパス セパレータ (「\」または「/」) を使用してハード コードされているか、手動で作成されたファイル名がいくつかあると思われます。gOptions.inputTfとのgWorkingTfFile値がどこに割り当てられているかを把握できる場合os.path.joinは、正しいパスを使用するために使用を検討する必要があります。

from os.path import join

file = join('A', 'B')
# 'A/B' on unix systems
# 'A\B' on windows systems
于 2012-06-06T21:02:26.933 に答える