我有一個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文件)