python使用相对路径引入图片文件

auforever888888 2010-12-30 09:47:37
我脚本文件里tkinter打开使用了两张图片,使用的是绝对路径引入的。现在我用py2exe打包了这两张图片及脚本文件,生成了win exe程序。但是我脚本文件中引用的图片的绝对路径没有更改啊,py2exe打包了这两张图片没什么用啊,把程序换台电脑运行就over了。
请问如何设置脚本文件中打开图片的路径或者有什么方法可以解决该问题?
...全文
1667 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
auforever888888 2010-12-31
  • 打赏
  • 举报
回复
nkliwenjian你的方法可以的,不过因为setup.py里设置打包图片的文件夹为"img",所以test1.py中引用图片的路径设置为"img/1.gif"就行了
非常感谢你!不过iambic提供的方法,我觉得比较难懂,但是应该是好的。
问题解决。谢谢所有帮助我的人!
nkliwenjian 2010-12-31
  • 打赏
  • 举报
回复
你可以试试把你的"d:/image/..."改成"./image/..."或者"image/...",看看问题是不是解决了
iambic 2010-12-30
  • 打赏
  • 举报
回复
代码当然要改了啊。
http://stackoverflow.com/questions/1939883/py2exe-embed-static-files-in-exe-file-itself-and-access-them
http://www.py2exe.org/index.cgi/CustomIcons
angel_su 2010-12-30
  • 打赏
  • 举报
回复
没有必要性的话,自己控制引用文件都是相对于当前工作目录下吧,这样在其它机器随便摆上就可以...不然你还得手动移动一些东西,或者用其它软件再打包成类似安装程序来做这些事...
auforever888888 2010-12-30
  • 打赏
  • 举报
回复
谢谢你,iambic,不过我还是不懂,能用下面的例子具体说一下吗?
#test1.py
import Tkinter
if __name__=='__main__':
root=Tkinter.Tk()
canvas=Tkinter.Canvas(root,
width=700,
height=400,
bg='orange')
im1=Tkinter.PhotoImage(file='d:/image/1.gif')
canvas.create_image(150,150,image=im1)
im2=Tkinter.PhotoImage(file='d:/image/2.gif'))
canvas.create_image(520,150,image=im2)
root.mainloop()
#setup.py
from distutils.core import setup
import py2exe

setup(windows=[{"script":"12_13.py","icon_resources":[(1,"model.ico")]}],
data_files=[("img",[r"image/1.gif",
r"image/2.gif"])])

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧