python 3.4 py2exe image.open 找不到图像

python 3.4 py2exe image.open cannot find the images

我正在尝试创建我的 GUI 的可执行文件(它使用我计算机中的 12 个图像)但是当我创建它时,.exe 不会在另一台计算机中 运行 因为它找不到那 12 个图片

我有一棵这样的树

project (folder)
--mycode.py (python file)
--setup.py (python file)
--images (folder)
  --image1 (image .jpg)
  --image2 (image .jpg)
  --image3 (image .jpg)

然后我使用 py2exe 创建 .exe,现在我的树是

project (folder)
--__pycache__ (folder)
  --mycode.cpython-34.pyc
--dist (folder)
  --mycode.exe (executable file for windows)
  --(and other 22 elements)
--mycode.py (python file)
--setup.py (python file)
--images (folder)
  --Im_0.jpg
  --Im_1.jpg
  --Im_2.jpg
  --...

现在

我正在使用这些来查找我的图像

import os
scriptDir = os.path.dirname(os.path.realpath(__file__))
IM0 = os.path.join(scriptDir, 'Images\Im_0.jpg')
....

然后我创建 .exe

但是当我 运行 可执行文件时它说

"NameError: name '__file__' is not defined" 

然后我试着去 http://www.py2exe.org/index.cgi/WhereAmI 因为 py2exe 没有 file 属性

他们说使用

import os
import jpath

if hasattr(sys,"frozen") and sys.frozen in ("windows_exe", "console_exe"):
  p=jpath.path(os.path.abspath(sys.executable)).dirname()

其他人说

import JPath class
import JPath.engine #@UnresolvedImport    
import jpath.syntax
from jpath.data import Boolean, Item, List, Map, Null, Number, Pair, String
import jpath.errors as errors
from jpath.utils.messages import JPATH_INTERNAL_ERROR_MESSAGE
from jpath.utils.text import trimTo
import jpath.evaluators
import re
from linearclassification.lib.utils import jpath,chunk,contains,has_subsequence

但 python 显示此消息

ImportError: No module named 'JPath'

现在我不知道如何处理 运行 我的代码导入与我的树显示的 .exe 相同的文件夹中的图像

完成,答案是这个

第一个在mycode.py我放

p=os.path.abspath(sys.executable)
IM0 = os.path.join('Images\Im_0.jpg')
IM1 = os.path.join('Images\Im_1.jpg')
IM2 = os.path.join('Images\Im_2.jpg')
...

然后我通过调用 mycode.py 和 setup.py 创建 .exe 像这样

from distutils.core import setup
import py2exe
setup(
 name="mycode",
 windows =['mycode.py'],
 options = {"py2exe": {"packages": ["encodings"]}}
 )

然后我转到命令提示符将目录更改为 setup.py 和 mycode.py 所在的文件夹 后来我写

python setup.py py2exe

创建 2 个文件夹

--__pycache__ (folder)
  --mycode.cpython-34.pyc
--dist (folder)
  --mycode.exe (executable file for windows)
  --(and other 22 elements)

现在在 dist(文件夹)中,我将文件夹 Images(文件夹)粘贴到我所有图像所在的位置,并且

--dist (folder)
  --mycode.exe (executable file for windows)
  --(and other 22 elements)
  --Images (folder)
    --Im_0.jpg
    --Im_1.jpg
    --Im_2.jpg
    --....

完成

如果有人有更好的方法请告诉我

无论如何谢谢