這種方法
import imp
import os
import sys
def main_is_frozen():
return (hasattr(sys, "frozen") or # new py2exe
hasattr(sys, "importers") # old py2exe
or imp.is_frozen("__main__")) # tools/freeze
def get_main_dir():
if main_is_frozen():
return os.path.dirname(sys.executable)
return os.path.dirname(sys.argv[0])
並獲得圖像路徑我用這個辦法大綱here做。
基本上,這使用from wx.tools import img2py
將圖像轉換爲.py
文件中的字符串。然後可以在此.py
文件的頂部使用from wx.lib.embeddedimage import PyEmbeddedImage
將這些字符串讀作位圖。
這樣,圖像可以像普通的Python文件一樣精確處理。
例如,在images.py
文件wxPython的演示,前幾行看起來像
from wx.lib.embeddedimage import PyEmbeddedImage
Mondrian = PyEmbeddedImage(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAHFJ"
"REFUWIXt1jsKgDAQRdF7xY25cpcWC60kioI6Fm/ahHBCMh+BRmGMnAgEWnvPpzK8dvrFCCCA"
"coD8og4c5Lr6WB3Q3l1TBwLYPuF3YS1gn1HphgEEEABcKERrGy0E3B0HFJg7C1N/f/kTBBBA"
"+Vi+AMkgFEvBPD17AAAAAElFTkSuQmCC")
這是有點像,看起來像蒙德里安繪畫。
嗯,這項工作,如果我將在另一臺計算機上運行該程序 – thelost 2012-03-06 01:31:24
你試過嗎?它有用嗎?如果確實如此,那麼這意味着問題在於您有兩種運行程序的方式,它們有不同的工作文件夾。解決方案是讓你在工作文件夾或子文件夾中存檔。 – ravenspoint 2012-03-06 02:45:53
儘管你想使用相對路徑。硬編碼路徑幾乎總是打破。 – 2012-03-06 13:54:53