Python/jython 在 virtualenv 中共存
我有一段Python代码,它分成了一个网页前端和一个后台服务。后台需要在Jython下运行,这样才能和一些Java库兼容,但我们想在cpython/mod_wsgi上运行网页服务器,因为我们在通过Jetty用Jython运行时遇到了内存问题。
我们在开发时使用virtualenv,现在我有两个virtualenv目录,一个是给cpython用的,另一个是给jython用的。我的问题是,这两个解释器能不能在一个virtualenv里共存(主要是为了省去两次更新已安装库的麻烦,还有就是出于好奇)。我用这两个解释器初始化了同一个环境:
virtualenv -p python environ
virtualenv -p jython environ
我可以运行这两个解释器,并且我可以创建符号链接,让environ/Lib/site-packages和environ/lib/python/site-packages指向同一个地方。只要没有库依赖于C扩展或优化,我看不出为什么它们不能在这两个解释器中都正常工作。有人不同意这个观点,或者有其他需要注意的地方吗?
1 个回答
0
我不明白为什么这两者不能共存——它们使用的基础设施完全不同,只共享.py文件。Jython是一个Java程序,而Python是用C写的;Jython编译成.class文件,Python编译成.pyc文件,等等。
唯一需要注意的事情(除了你提到的在Jython中避免使用基于C的模块)就是要把PYTHONPATH和JYTHONPATH设置成相同的值(因为Jython不使用PYTHONPATH)。