使用pyserial而不安装?

时间:2016-01-18 02:17:53

标签: python pyqt pyserial qgis

我正在研究PYQT-QGIS Application,我希望我的应用程序需要最少的外部依赖项。(理想情况下没有)

Pyserial在我正在使用的主库上,所以我想在没有安装的情况下使用这个库,让它成为我的包的一部分。我记得使用旧的pyserialQGIS Plugin

问题: 是否仍然可以在没有安装的情况下使用pyserial lib?一些指针会有所帮助。

1 个答案:

答案 0 :(得分:0)

查看当前的pyserial软件包setup.py,似乎有一些额外的设置在安装鸡蛋时运行:

setup(
    name = "pyserial" + suffix,
    description = "Python Serial Port Extension",
    version = version,
    author = "Chris Liechti",
    author_email = "cliechti@gmx.net",
    url = "http://pyserial.sourceforge.net/",
    packages = ['serial', 'serial.tools', 'serial.urlhandler'],
    license = "Python",
    long_description = "Python Serial Port Extension for Win32, Linux, BSD, Jython, IronPython",
    classifiers = [
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Intended Audience :: End Users/Desktop',
        'License :: OSI Approved :: Python Software Foundation License',
        'Natural Language :: English',
        'Operating System :: POSIX',
        'Operating System :: Microsoft :: Windows',
        #~ 'Operating System :: Microsoft :: Windows :: Windows CE', # could work due to new ctypes impl. someone needs to confirm that
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.3',
        'Programming Language :: Python :: 2.4',
        'Programming Language :: Python :: 2.5',
        'Programming Language :: Python :: 2.6',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.0',
        'Programming Language :: Python :: 3.1',
        'Programming Language :: Python :: 3.2',
        'Topic :: Communications',
        'Topic :: Software Development :: Libraries',
        'Topic :: Software Development :: Libraries :: Python Modules',
        'Topic :: Terminals :: Serial',
    ],
    platforms = 'any',
    cmdclass = {'build_py': build_py, 'build_scripts': build_scripts},

    scripts = ['serial/tools/miniterm.py'],
)

值得注意的是cmdclass和scripts部分。鸡蛋正在构建.py,.pyc和脚本文件,并且在执行此操作时似乎考虑了机器本身。除非你预先制作蛋并部署在同一平台/ python等上,否则它可能无法将其丢弃。

我强烈建议您查看Buildout以部署您的应用程序。它以可重现且高效的方式为您处理依赖性/部署问题。我目前使用它来部署与Pyserial / PYQT / Pyside的arduino项目,它的效果非常好。我希望能够在未来的此类教程中与Arduino配方分享我的GIT。

Buildout可以从互联网上获取包,也可以将所需的鸡蛋预加载到安装程序中。它基本上允许您的项目拥有一个专用的虚拟环境,其中包含所有鸡蛋/脚本"已安装"并为它配置。这对于更复杂的软件包(如iPython Notebook,Django或PyQT / pyserial)特别有用,因为它实际上安装/构建了鸡蛋,就像直接在机器上安装一样,但这样做的方式不会影响其他工具/项目。

http://www.buildout.org/en/latest/