我有一个GUI应用程序,另一个开发人员写道:我想变成一个畅达包将安装用户可以随后推出的桌面上桌面图标无缝连接。应用程序与Python的setuptools安装制作,但不会从桌面启动快捷方式
下面的文件夹结构和代码,我可以分享:
Documents/
└── project/
├── bld.bat
├── meta.yaml
├── setup.py
├── setup.cfg
└── mygui/
├── MainGUI.py
├── __init__.py
├── __main__.py
└── images/
└── icon.ico
的文档\项目\ bld.bat:
python setup.py install install_shortcuts
if errorlevel 1 exit 1
的文档\项目\ meta.yaml:
package:
name: mygui
version: 1.2.3
source:
path: ./
build:
number: 1
string: py{{ CONDA_PY }}_{{ ARCH }}
requirements:
build:
- python 2.7.13
- pyvisa 1.4
- setuptools
- setuptools-shortcut
- pydaqmx
- pmw
- matplotlib
- pyserial
- pil
run:
- python 2.7.13
- pyvisa 1.4
- pydaqmx
- pmw
- matplotlib
- pyserial
- pil
about:
license:
summary: My GUI application
Documents \ project \ setup.py:
页from setuptools import setup, find_packages
setup(
name='mygui',
version='1.2.3',
author='Me',
author_email='[email protected]',
description=(
"An App I wrote."
),
long_description="Actually, someone else wrote it but I'm making the conda package.",
packages=find_packages(),
package_data={
'mygui': ['images/*ico'],
},
entry_points={
'gui_scripts': [
'MyApp = mygui.__main__:main'
],
},
install_requires=['pyvisa==1.4', 'pmw', 'pydaqmx', 'matplotlib', 'pyserial', 'pil']
)
的文档\项目\ setup.cfg:
[install]
single-version-externally-managed=1
record=out.txt
[install_shortcuts]
iconfile=mygui/images/icon.ico
name=MyApp
group=My Custom Apps
desktop=1
的文档\项目\ mygui__main __潘岳:
from MainGUI import main
if __name__ == '__main__':
main()
原来的GUI开发人员必须在去像块的代码块:
if __name__ == '__main__':
<code here>
,所以我把所有的代码会在哪里,并把它剪切/粘贴到:
def main():
<code here>
if __name__ == '__main__':
main()
所有MainGUI.py文件中。我无法分享代码的细节。但它的工作原理如下所述。
当我在PyCharm中打开我的代码,并在meta.yaml文件中列出的所有软件包在conda环境中运行或调试时,应用程序工作得很好,没有任何警告或错误。然而,当我运行conda build
,上传到蟒蛇通道,然后在机器上安装,桌面图标被创建,但是当我点击它的应用程序将无法运行。
有什么错在我的设置文件?我该如何调试应用程序失败的原因?我没有看到任何命令窗口或任何类型的输出,PyCharm也不会抱怨,所以它一定是应用程序创建后的东西。
更新:这是我第一次创建conda软件包,它将自己安装为这样的应用程序,并且我使用了一个同事的setup.py文件作为模板。我很好奇他是否在他的一个项目中创建的conda软件包与我的conda-build中出现的conda软件包在结构上不同。如果我采取tar.bz文件并解压,这是我得到的结构:
mygui-1.2.3-py27_32/
├── info/
├── about.json
├── files
├── has_prefix
├── index.json
└── paths.json
├── Lib/
└── site-packages
└── mygui-1.2.3-py2.7.egg-info
├── dependency_links.txt
├── entry_points.txt
├── PKG-INFO
├── requires.txt
├── SOURCES.txt
└── top_level.txt
├── Menu/
├── mygui.ico
└── mygui_menu.json
└── Scripts/
├── MyApp.exe
├── MyApp.manifest
└── MyApp.pyw
但我的同事得到了相同的结构,但他也得到了一个名为Lib/site-packages/mygui/
,例如目录,其中包含源代码在.py和.pyc文件和目录中。为什么我的软件包没有得到这些源文件,这可能是我的应用程序无法启动的原因?我也看不出有任何的,我在我的setup.py文件已经表明我的数据文件(* .ico文件)