首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在setup.py中列出一个可选的Python依赖项

在setup.py中列出一个可选的Python依赖项
EN

Code Review用户
提问于 2014-12-04 14:41:56
回答 1查看 213关注 0票数 3

我有一个小项目,它需要一个很少更新的第三方模块(大约每隔一年更新一次),并且不需要任何包管理系统来维护。这里的上下文是认知科学与研究,第三方模块是为了将专有硬件与自定义脚本连接起来,在房屋项目中,可能最终会在cog中看到更广泛的(最终是开源的)使用。所以我想计划一下分配。

有人能在这种方法上戳洞或竖起大拇指吗?

代码语言:javascript
运行
复制
#!/usr/bin/env python

from distutils.core import setup

try:
    import third_party_package
    install_packages = ['in_house_package']
except ImportError:
    print "Warning: 'third_party_package' not found in PYTHON_PATH, installing version in_house_package v. <VERSION>"
    install_packages = ['in_house_package', 'in_house_package.third_party_package']

setup(
    name='InHousePackage', 
    version = '0.1', 
    description = 'A framework for building psychological experiments in Python', 
    author = 'me', 
    author_email = 'my_address', 
    url = 'a local git', 
    packages=install_packages,
    requires = ['numpy']
    )
EN

回答 1

Code Review用户

回答已采纳

发布于 2015-11-29 11:26:46

几点小小的评论:

  1. 错误信息在我看来是错的。这就是逻辑在我看来的样子:如果(第三方包已经安装):install(内部包) of :install(内部包)install(第三方包的内部变体),但是打印的警告告诉我,内部包没有安装。它不应该告诉我第三方包没有安装吗?
  2. ImportError并不一定意味着没有安装模块。它只表示在导入模块时发生的任何错误。例如,如果我有一个文件foo.py,其中包含:导入栏而没有模块bar.py,则在尝试导入foo时得到一个ImportError,即使foo文件存在:>>>导入foo跟踪(最近一次调用):文件"",第1行,在文件"foo.py“中,第1行,在导入栏ImportError:没有模块名为bar,您可以使用导入工具跳过这些模块,或者检查ImportError的错误消息。这也许是值得担心的事情,也可能不是值得担心的事情;只要记住,这种边缘情况就在那里。
  3. 琐碎的挑剔。
    • 我确信这只是CR上的一个伪贴,它实际上并不叫in_house_package,但是您在错误消息中拼写错了。
    • 当为函数(如setup())指定关键字参数时,通常忽略等号周围的空格。
票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/71658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档