Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为mac osx创建安装程序_Python_Macos_Py2exe_Egg_Dmg - Fatal编程技术网

Python 如何为mac osx创建安装程序

Python 如何为mac osx创建安装程序,python,macos,py2exe,egg,dmg,Python,Macos,Py2exe,Egg,Dmg,我正在用python制作一个应用程序,它能够打开不同的文件类型。这段代码在eclipse上运行良好,同时将要打开的文件名和配置文件分别作为参数传递。现在我使用py2app将其转换为应用程序。所以,问题是如何处理参数,因为不同的文件类型需要通过应用程序打开,并且此应用程序在处理时还需要配置文件。有没有什么不同的方法可以用来制作可以安装在mac osx上的应用程序。你看过了吗?它相当于MacOSX的py2exe,并创建了一个独立的应用程序。您可以非常轻松地处理记录器和配置文件,并使您的应用程序保持良

我正在用python制作一个应用程序,它能够打开不同的文件类型。这段代码在eclipse上运行良好,同时将要打开的文件名和配置文件分别作为参数传递。现在我使用py2app将其转换为应用程序。所以,问题是如何处理参数,因为不同的文件类型需要通过应用程序打开,并且此应用程序在处理时还需要配置文件。有没有什么不同的方法可以用来制作可以安装在mac osx上的应用程序。

你看过了吗?它相当于MacOSX的py2exe,并创建了一个独立的应用程序。您可以非常轻松地处理记录器和配置文件,并使您的应用程序保持良好且易于分发

我通常将日志文件作为隐藏文件存储在用户的主目录中——很多Mac OSX应用程序都是这样做的——我不确定这是否是正式的方式,但它确实有效。主目录保证存在,并且不会像写入其他随机文件夹或应用程序包中的位置时那样出现权限错误

您可以这样做,并保持代码跨平台购买打开的文件,如下所示

import platform
import os

if platform.system() == 'Darwin': # We're on a mac
        # Store the saved rates in the users home dir - note the dot at the start
        # of the filename to keep the file hidden
        home = os.path.expanduser("~")
        filename = os.path.join(home, '.myHiddenLogger')

else: # We're on another platform, create whatever filename you were using before
        filename = 'myLogger'

至于配置文件,它告诉您如何将资源文件捆绑到您的应用程序中。如果要将内容写入此配置文件并保存到下次,则必须将其存储为隐藏文件,如记录器-这将阻止应用程序在尝试写入应用程序包中的文件时由于权限错误而崩溃。

在我的应用程序中,我通过web浏览器和webbrowser.open()调用web服务和身份验证。我正在读取路径和服务器IP的配置文件。此外,如果需要,我想在MAC上安装应用程序后更改服务器IP。通过py2appYes,您可以在使用构建应用程序时将初始配置文件作为资源文件。然后,当您的程序启动时,它可以检查用户的主目录中是否有隐藏的配置文件,如果没有,它将创建一个包含在捆绑包中的配置文件的副本。现在,如果需要,可以从新的服务器IP读取并更新这个隐藏的IP,该计算机上的每个用户配置对他们来说都是唯一的。此外,用户可以移动应用程序包,并从他们想要的任何地方运行它,您不必担心试图找出配置文件的位置-它将始终隐藏在他们的主目录中。我非常感谢您的建议。我将setup.py、myapp.py cc.icns、config.cfg保存在user/fis/Desktop位置。然后生成dist和build文件夹。在dist内部,myapp带有所需的徽标。在资源中,存在config.cfg文件。这个应用程序基本上就像记事本++。因此,当您安装此应用程序,并双击任何文件时,该文件应使用此应用程序打开。现在,当我在dist内单击myapp时,它显示控制台、终端的错误。然后我选择了任何文件,并尝试使用OpenWithMyApp。它显示此错误17/10/13 10:48:01.955 AM com.apple.launchd.peruser.501[130]:([0x0-0x1f51f5].org.pythonmac.unspecified.myapp[2144])已退出,代码为255。那么,我是否需要安装此应用程序。如果是的话,怎么办?在pyhton代码中,我传递config.cfg文件和所需文件以作为参数打开。此外,mac上的应用程序位置中不存在myapp。请答复