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)困扰我的另一件事是它说有一个IOError。但是当我尝试为被拒绝的那个添加权限时,它给了我一个chmod:更改/myPath/xFiles.bin.addr_patched的权限:不允许操作编辑2 :

我注释掉了一个模块,因为我认为它不是很有用。由于现在我无论如何都在讨论移植问题,我想我也可以提出这个额外的问题,因为我认为问题是相同的并且修复应该是相似的。在 python 代码中包含#pdb 模块时,出现以下错误

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 样式路径的混合使我认为您可能有一些文件名是硬编码的或使用操作系统特定的路径分隔符(“\”或“/”)手动创建的。如果你能弄清楚gOptions.inputTfgWorkingTfFile值的分配位置,你应该考虑使用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 回答