Python脚本在命令行正常,但在Eclipse和PyDev中出现文件未找到错误
文件夹结构:
src
+ root
+ nested
++ myprogram.py
++ helper.py
++ res
+++ excluded.txt
+++ whitelist.txt
案例 1 - 在 Eclipse 中创建一个 PyDev 项目。作为 PyDev 配置运行。指定主模块和其他所有内容。主模块是 myprogram.py。当我在 Eclipse 中运行时,出现错误 - IOError: [Errno 2] 没有这样的文件或目录: '.\res\excluded.txt' excluded.txt 在 myprogram.py 中被指定为 => excluded_words_file = r'.\res\excluded.txt'
案例 2 - 使用命令行运行 myprogram.py 脚本。运行得非常顺利。
唯一的区别是 Eclipse 还在这个项目中使用 SVN 源代码控制。所以我尝试在断开与仓库的连接后再运行。但问题依旧。
那么我在 Eclipse 设置中可能做错了什么呢?谢谢。
2 个回答
0
听起来像是路径的问题。请把你运行后看到的结果发出来。
import sys
print sys.path
发帖者说,sys.path
输出了以下内容:
C:\Documents and Settings\sumod_pawgi\workspace\SWCTester\src\root\nested
C:\eclipse\plugins\org.python.pydev.debug_2.1.0.2011052613\pysrc
C:\Documents and Settings\sumod_pawgi\workspace\SWCTester\src
C:\Python25\Lib\site-packages
C:\Python25
C:\Python25\DLLs
C:\Python25\lib
C:\Python25\lib\lib-tk
C:\Python25\lib\plat-win
C:\WINDOWS\system32\python25.zip
C:\eclipse\plugins\org.python.pydev_2.0.0.2011040403\PySrc
C:\Python25\Lib\site-packages\py2exe
根据我看到的情况,我发现一个问题:你的 res
文件夹不在你的路径中。这个问题可以通过两种方式解决:
- 执行
sys.path.append('path/to/res/directory')
- 在 PyDev 的运行配置中添加
res
文件夹到路径中
或者
- 在 Eclipse 中右键点击 *.py 文件,选择 'Run as' -> 'Run Configurations...'
- 在右侧,选择 'Arguments' 标签。
- 检查 'Working Directory' 部分,确认选中的工作目录(所有需要的文件都应该在这里 - 如果没有,点击 'workspace' 按钮并从工作区选择文件夹)
0
快速调试的方法是:
import os
print os.getcwd()
这样可以让你看到,Eclipse并不是从你在命令行中输入的那个目录运行的。
在Python模块中,右键点击 -> 属性 -> 运行/调试设置 -> Python运行 -> 参数,你可以更改工作目录。
我个人认为这样做不是个好主意,最好是修改程序,让它从一个绝对路径读取,这样无论程序部署在哪里都能正常工作。