在我的桌面上,我编写了一个连接到Oracle的小型Pylons应用程序。我现在正尝试将其部署到运行Win2k3 x64的服务器上。 (我的桌面是32位XP)服务器上的Oracle安装也是64位。
我收到有关加载OCI dll的错误,因此我将32位客户端安装到C:\oracle32
。
如果我将其添加到PATH
环境变量中,则效果很好。但我也希望将Pylons应用程序作为服务(using this recipe)运行,并且不希望将此32位库放在所有其他应用程序的路径上。
我尝试使用sys.path.append("C:\\oracle32\\bin")
,但这似乎不起作用。
答案 0 :(得分:2)
sys.path是python的PYTHONPATH的内部表示,听起来像你想要修改PATH。
我不确定这会有效,但您可以尝试:
import os
os.environ['PATH'] += os.pathsep + "C:\\oracle32\\bin"
答案 1 :(得分:0)
在执行python.exe之前,需要将c:\ Oracle32 \ bin目录附加到环境的PATH变量中。
在Linux中,我需要设置LD_LIBRARY_PATH变量,出于类似的原因,在调用python之前找到Oracle库。我使用包装器shell脚本来设置变量,然后调用Python
在您的情况下,也许您可以在服务启动时调用设置PATH变量的.cmd或.vbs脚本,然后使用.py脚本调用python.exe。
我希望这有帮助!
答案 2 :(得分:0)
如果您的Python应用程序在64位空间中运行,则需要访问Oracle的oci.dll的64位安装,而不是32位版本。通常,在运行脚本之前,您将更新系统路径以包含相应的Oracle Home bin目录。解决方案也可能因您从Python访问Oracle所使用的组件而异。