Python:引用另一个项目
我想从命令行运行我的Python项目。我需要参考其他项目,所以我需要能够运行其他文件夹里的模块。
一种方法是修改Pythonpath这个环境变量,但我觉得这样不太好。还有一种办法是把我想要的所有文件都复制到一个文件夹里,然后再运行Python。有没有更好的方法呢?
注意:我其实是在Eclipse里编程,但我想能够远程运行这个程序。
类似的问题:
- 引用另一个项目:这个问题基本上是在问如何导入
5 个回答
首先,我会确认我想要使用的模块没有被全局安装。接着,我在这个模块的目录里添加一个符号链接:
# With pwd == module to which I want to add functionality.
ln -s /path/to/some_other_module_to_include .
然后我就可以进行标准的导入了。这样做可以让我们使用多个版本的模块等。它不需要更改任何全局设置,而且如果你在不同的机器上工作,也不需要修改程序代码(只需要更改符号链接就可以了)。
看看以下这些工具:
virtualenv:这个工具可以帮你创建一个虚拟的Python环境。在这个环境里,你可以安装你需要的模块,而不会影响到全局的Python设置。你可以在这里找到它:http://pypi.python.org/pypi/virtualenv
Setuptools:这个工具让你可以指定你的模块需要哪些依赖,并且可以自动安装这些依赖。如果你在使用setuptools时遇到问题,可以看看它的一个维护版本,叫做Distribute,链接在这里:http://pypi.python.org/pypi/setuptools 和 http://pypi.python.org/pypi/distribute
Buildout:这个工具可以帮助你部署一个完整的应用环境,包括一些第三方软件,比如MySQL或者其他任何东西。你可以在这里找到它:http://pypi.python.org/pypi/zc.buildout/
如果你导入了sys模块,它里面有一个列表,列出了PYTHONPATH中的所有目录,这个列表叫做sys.path。
如果你想把某些目录添加到这个列表中,比如用sys.path.append("my/path"),这样你就可以像平常一样从这些位置导入模块,而不需要去改变你系统上的全局设置。