示例:"在测试/虚拟中提供Rails应用程序""为生产安装Rails的推荐方法是什么?"
在了解Go的依赖管理时,我经常听到用作动词的术语"供应商".示例:"应用程序供应商的依赖项......"
在这种情况下供应依赖是什么意思?
例子:
"使用您的应用程序销售的依赖关系"
资料来源:https://devcenter.heroku.com/articles/getting-started-with-go#declare-app-dependencies
"godep将编写出售的代码"
资料来源:https://github.com/tools/godep#go-15-vendor-experiment
后续问题:
这与Ruby中的vendoring有关吗?
这个术语是在Go 1.5供应商实验中完全定义的,还是有一个单独的传统定义?
有类似的问题,但所有这些问题都需要您克隆存储库,然后在其上运行一些实用程序。我需要一个可以为我提供这些统计信息的网络服务(例如使用 URLhttp://my-sloc-counter.com/project1从 GitHub 获取 project1 的 SLOC 统计信息)
假设我有一个包含一堆对象的模块,其中没有一个需要第三方库。好吧,几乎没有:一个函数(称为 )asterix()需要第三方包。asterix()不是该模块的重点,但在需要时使用很方便。
仅仅为了这个功能就必须要求并导入整个第三方包似乎是一种耻辱。我有什么选择?转移asterix()到另一个模块/包或供应商似乎很愚蠢。
我发现快速和干净的最佳平衡是简单地在asterix()其内部进行导入,可能需要一些额外的 try/ except 逻辑。它违反了最小意外原则和进口优先的惯例。但我告诉自己我永远都会违反一些事情。
群众智慧对此有何看法?我缺少什么明显的东西吗?
def asterix(...):
try:
import something_special
except ModuleNotFoundError as err:
# do something about err (help the user out!)
# The special code...
Run Code Online (Sandbox Code Playgroud) 我想分发一个具有闭源依赖关系的 Python 包。我正在使用 setup.py,如果我也使用 setup.py 进行编译,一切都会正常。
我有以下文件结构:
.
??? closed_source
? ??? compiled.so
??? python_modules
? ??? file1.py
? ??? file2.py
? ??? ...
? ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)
我也尝试包含compiled.so在python_modules. 在file1.py我使用import compiled哪个失败。
以下工作,但静默未能包括动态库:
setup(
name='my_package',
version=0.1,
packages=['python_modules'],
package_dir={'python_modules': 'python_modules'},
package_data={'': ['closed_source/compiled.so']}, # also tried using key compiled
include_package_data=True,
)
Run Code Online (Sandbox Code Playgroud)