我目前的Python项目遇到了一个问题。
我写的连接到Sharepoint的API需要在64位Python中运行。Oracle API需要在32位Python中运行(因为服务器问题)。
当我单独运行脚本时(每个脚本都有自己的venv),一切都运行得很完美。
然而,当我在32位代码中导入sharepoint脚本时,它给出了一个错误。当将oracle脚本导入Sharepoint代码时,情况也正好相反。
注意:当我提到import时,它将导入另一个python文件作为一个模块:
from oracle import OracleCon
from sharepoint import SharePointCon
字符串
SharePoint连接字符串:'Provider = Microsoft.ACE.OLEDB.12.0; WSS;IMEX= 2;RetrieveIds=Yes; DATABASE=site_url; LIST= list_id'
我尝试配置两个虚拟环境,但在导入另一个python文件时没有成功。还尝试了不同的连接字符串与Sharepoint连接,但没有成功:'Provider = Microsoft.JET.OLEDB.4.0; WSS;IMEX= 2;RetrieveIds=Yes; DATABASE=site_url; LIST= list_id'
需求:或者找到一种可靠的方法来运行两个版本的Python。或者找到一种方法来连接到32位Python中的Sharepoint。
2条答案
按热度按时间vmdwslir1#
运行两个通过网络通信的docker容器可能是更好的方法。一个用于sharepoint,另一个用于Oracle API。
sxpgvts32#
在同一进程中运行两个不同的Python版本(32位和64位)是不可行的。在大多数情况下,您无法同时加载32位和64位库和DLL,因此在同一进程中运行两个不同的Python环境是不切实际的。
解决问题的一种可能方法是让32位和64位组件通过中间进程或服务进行通信。
创建两个单独的脚本,一个用于32位组件(Oracle),另一个用于64位组件(Sharepoint)。
创建一个API服务或一个单独的脚本,作为一个独立的进程运行,它可以与32位和64位组件进行通信。此服务可以充当应用程序的两个部分之间的桥梁。
API服务应该为32位和64位组件公开端点或方法以进行交互。这可以使用REST API、消息队列或任何其他合适的进程间通信(IPC)机制等技术来完成。
在32位和64位脚本中,使用库或模块向API服务发出请求以进行数据交换。
API服务将处理来自两个组件的请求,并在它们之间进行数据交换。
这种方法将32位和64位组件混合在一起,允许它们在单独的环境中运行,同时仍然使它们能够有效地通信。它可能需要一些额外的开发和设置,但它应该提供一种可靠的方法来连接应用程序的两个部分。
至于在32位Python中连接到Sharepoint,您可能希望探索与32位Python兼容的替代库或方法。不幸的是,某些库和驱动程序可能有特定的要求,您可能需要查阅Sharepoint的官方文档或支持渠道,以找到适合32位Python的解决方案。