2012-09-27 116 views
-1

说我有一个模块MyModule。 MyModule作为函数Myfunction。 Myfunction根据输入和pickle文件'my.p'做了一些处理并返回它。python使用模块和路径

我有一个名为MyProgram.py的程序。在MyProgram.py中我导入MyModule并使用Myfunction很多。如:

from MyModule import MyFunction 

MyProgram.py需要一些输入文件。

MyModule.py和MyProgram.Py和my.p都在同一个文件夹中。

问题是,我想在Windows资源管理器上启动MyProgram.py。我告诉过你需要一些输入文件。所以我的(实际上是我正在编写这个程序的人)更喜欢的方法是点击输入文件,拖放到MyProgram.py和tada!一切都完成了。

不好的部分是,如果我这样做,它会抛出一条错误消息,说它找不到my.p.

如果我转到命令行和类型

>python MyProgram.py input.text 

这里没有问题。

我想我必须追加一些东西到sys.argv,但我真的不知道。任何帮助?

回答

0

也许这是由于使用相对路径名造成的。

使用绝对路径:

from os.path import realpath, dirname 
BASE_PATH = dirname(realpath(__file__)) 
myp  = open(BASE_PATH+'/my.p')