我希望能够运行在命令行中我的Python项目。 我引用的其他项目,所以我需要在其他文件夹中能够运行的模块。
使这项工作的一种方法是修改PYTHONPATH环境变量,但我认为这是一个弊端。 另劈将是所有我想要的文件复制到一个目录,然后运行Python。 是否有这样做的更好的方法?
注:我其实编程在Eclipse,但我希望能够远程运行程序。
类似的问题:
- 引用另一个项目 :这个问题基本上是询问如何导入
我希望能够运行在命令行中我的Python项目。 我引用的其他项目,所以我需要在其他文件夹中能够运行的模块。
使这项工作的一种方法是修改PYTHONPATH环境变量,但我认为这是一个弊端。 另劈将是所有我想要的文件复制到一个目录,然后运行Python。 是否有这样做的更好的方法?
注:我其实编程在Eclipse,但我希望能够远程运行程序。
类似的问题:
如果导入SYS,它包含的目录中PYTHONPATH作为sys.path的列表
将目录添加到这个列表(sys.path.append(“我的/路径”))允许您从当前模块正常在这些位置没有导入您的系统上更改全局设置。
看看像工具
virtualenv中,建立一个虚拟的巨蟒,在其中您可以安装模块,而不让他们在全球范围。 http://pypi.python.org/pypi/virtualenv
setuptools的,它允许你指定(和自动安装)依赖关系的模块。 http://pypi.python.org/pypi/setuptools (如果你有setuptools的问题,看看分发,一个保持叉。 http://pypi.python.org/pypi/distribute )
扩建,它允许你部署一个完整的应用环境,包括MySQL的第三方软件,或其他任何东西。 http://pypi.python.org/pypi/zc.buildout/
首先,我要确保我要包含的模块尚未安装全球。 然后,我的includee的目录中添加一个符号链接:
# With pwd == module to which I want to add functionality.
ln -s /path/to/some_other_module_to_include .
然后我可以做一个标准的导入。 这允许多个版本等,它不需要更改任何全局设置,并且你不需要,如果你在不同的机器的工作来改变程序代码(只是改变符号连接)。
如果“运行模块”你的意思是其导入,您可能会感兴趣这个问题,我问前一阵子。
我只是意识到我其实已经解决过这个问题。 下面是我使用的方法 - 远远超过mavnn更加复杂,但我也从解决一个Python 3.0运行Python2.x程序的问题
import os
import subprocess
env=os.environ.copy()
env['PYTHONPATH']=my_libraries
kwargs={"stdin":subprocess.PIPE, "env":env}
subprocess.Popen(["python","-u",program_path],**kwargs)