.exe图标不会更改[py2exe]

时间:2015-03-12 10:54:09

标签: python python-2.7 icons py2exe

我的图标文件myicon.ico与setup.py位于同一目录中。当我运行py2exe时,myproject.exe没有图标。我寻找解决方案但找不到。

setup.py代码是:

from distutils.core import setup
import py2exe

setup(
   windows=[{
         "script": "myproject.py",
         "icon_resources": [(0, "favicon.ico")],
      }]
)

操作系统:Win8.1 64位

5 个答案:

答案 0 :(得分:7)

看来py2exe有a 4-year-old bug on handling icons,但由于其描述,我设法解决了这个问题:

setup_dict = dict(
    windows = [{'script': "script.py",
                "icon_resources": [(1, "icon.ico")}],
)

setup(**setup_dict)
setup(**setup_dict)

这几乎构建了两次项目。如果您的项目很复杂并且需要很长时间来处理py2exe,您可以使用它来构建一个虚拟py文件:

import tempfile
tf = tempfile.NamedTemporaryFile(delete=False)
tf.close()
setup(
    windows = [{
        'script': tf.name,
        "icon_resources":[(1, "icon.ico")]}]
)
os.remove(tf.name)

不要忘记设置项目的排除项,否则您的dist文件夹会被不需要的文件弄得乱七八糟。

答案 1 :(得分:3)

请试试这个

from distutils.core import setup

setup(
    options = {'py2exe': {'bundle_files': 1}},
    zipfile = None,
    windows = [{
            "script":"myproject.py",
            "icon_resources": [(1, "favicon.ico")],
            }],
)

答案 2 :(得分:2)

我像那样处理我的问题;

  1. 我使用了上面的代码,我在我的问题中发帖。
  2. 然后我安装了Resourch Hacker程序。
  3. 我使用Resourch Hacker程序打开了myprogram.exe文件。
  4. 然后行动>替换图标>我选择了我想要的图标。
  5. 好吧!
  6. 对于Resourch Hacker教程CLICK THIS

答案 3 :(得分:0)

我遇到了同样的问题。我通过从http://www.iconarchive.com/search?q=windows+7&page=5下载win7图标解决了这个问题,原因应该是一开始就无法正常工作的图标文件不是正确的win7格式图标。

此网页https://www.creativefreedom.co.uk/icon-designers-blog/windows-7-icon-sizes/告诉我们一个主题"测试您的Windows 7图标"检查图标是否真的是win7图标。

答案 4 :(得分:0)

我使用了另一个程序,来自pyinstaller from this post 它第一次工作。

安装它:

String fileContent = "value 1: abc\n\nvalue 2: def\n\nvalue 3: xyz\n\nvalue 3: Constant : Result:482,9 abc²:88,55 r:0\n\n           x = abc  in Pa ,  y = eee in yyy";
Matcher resultMatcher = RESULT_PATTERN.matcher(fileContent);
String resultValue = "";
if (resultMatcher.find()) {
    resultValue = resultMatcher.group("Result");
} else {
    throw new RuntimeException(EXCEPTION_FILE_RESULT_NOT_VALID);
}
System.out.println(resultValue); // => 482,9

编译我的程序:

pip install pyinstaller

第一次工作!希望有所帮助。