所以我们正在编写一个全文搜索框架MongoDb。MongoDB基本上是javascript原生的,所以我们首先编写了javascript库,并且它可以工作。
现在,我试图为它编写一个python框架,它将部分放在python中,但部分使用相同存储的javascript函数-- javascript函数是库的一个固有部分。另一方面,javascript框架不依赖于python。由于它们非常紧密地交织在一起,所以似乎有必要将它们保存在同一个存储库中。
我正试图找到一种方法来构造整个项目,使javascript和python框架处于同等的地位(可能是ruby驱动程序还是其他什么?),但仍然允许python库很好地安装。
目前,它看起来如下:(简化一点)
javascript/jstest/test1.js
javascript/mongo-fulltext/search.js
javascript/mongo-fulltext/util.js
python/docs/indext.rst
python/tests/search_test.py
python/tests/__init__.py
python/mongofulltextsearch/__init__.py
python/mongofulltextsearch/mongo_search.py
python/mongofulltextsearch/util.py
python/setup.py为了简单起见,我跳过了几个文件,但是您有了大致的想法;这是一个标准的python项目.但是,它依赖于大量存储在同级目录树中的javascript。
当涉及到setuptools时,处理这类事情的首选设置是什么?我可以知道如何使用package_data等来安装位于project 根据setuptools文档中的数据文件。
问题是,如果我想使用setuptools来安装一些东西,包括python代码树之外的javascript文件,那么在开发python代码时以及当它被easy_install编辑到某人的站点时,也要以一致的方式访问它们。
是支持setuptools行为的吗?我应该使用摊铺机或distutils2或分发什么的吗?(基本distutils不是一个选项;我这么做的全部原因是为了启用需求跟踪),我应该如何将这些文件的内容读入python脚本?
发布于 2010-05-24 16:00:53
简单的回答是,Python发行工具中没有一个能按您想要的方式来执行。即使您使用distutils的data_files特性,您仍然需要将您的javascript文件复制到您的project目录中(即在与您的setup.py位于同一个目录下的某个位置)。
考虑到这一点,您最好将.js文件复制到包中(即作为构建过程的一部分与.js一起使用,并使用package_data或include_package_data=True )。
(或者,如果您的修订控制系统支持这些链接,则可以使用符号链接、外部链接或其他类似的方法。我相信在构建源代码发行版时,Python发行版工具会将符号链接转换成真正的文件。至少,你可以试一试。
https://stackoverflow.com/questions/2891575
复制相似问题