如何将Python应用程序移植到Linux,在Windows中运行良好

时间:2012-06-06 20:47:14

标签: python windows linux ioerror

我无法将正常运行的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.But当我尝试为被拒绝者添加权限时它给了我一个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它运行正常。无论如何,谢谢大家的帮助

1 个答案:

答案 0 :(得分:2)

错误消息中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