我希望我的Python脚本能够在Vista上复制文件.当我从普通cmd.exe窗口运行它时,不会生成错误,但不会复制文件.如果我运行cmd.exe"作为管理员",然后运行我的脚本,它工作正常.
这是有道理的,因为用户帐户控制(UAC)通常会阻止许多文件系统操作.
有没有办法可以在Python脚本中调用UAC提升请求(这些对话框说"像这样的应用程序需要管理员访问权限,这样可以吗?")
如果那是不可能的,那么我的脚本是否有一种方法可以至少检测到它没有被提升以便它可以优雅地失败?
我希望在django支持的Web应用程序中保持对第三方遗留数据库的持久连接.
我想保持Web应用程序和旧数据库之间的连接打开,因为为这个特殊的数据库创建新连接非常慢.
它不像通常的连接池,因为我需要存储每个Web用户的连接.用户"Foo"需要在Web服务器和旧版DB之间建立自己的连接.
到目前为止,我使用Apache和wsgi,但如果其他解决方案更合适,我可以改变.
到目前为止我使用django.在这里我也可以改变.但是痛苦会更大,因为已经有很多代码需要再次集成.
到目前为止,我使用Python.我想Node.js在这里会更合适,但改变的痛苦太高了.
当然需要某种超时.如果N分钟没有来自用户"Foo"的http请求,那么持久连接将需要关闭.
怎么能解决这个问题?
更新
我叫它,DB但它不是通过settings.DATABASES配置的数据库.这是一个奇怪的,传统的,不是广泛的类似DB的系统,我需要集成.
如果我现在有50个人在线使用网络应用程序,那么我需要有50个持久连接.每个用户一个.
用于连接到DB的代码
我可以在每个请求中执行此行:
strangedb_connection = strangedb.connect(request.user.username)
Run Code Online (Sandbox Code Playgroud)
但是这个操作很慢.使用连接很快.
当然strangedb_connection不能序列化,也不能存储在会话中:-)
我有两个程序都是python,一个是第三方,已经制作.我想在前台运行一个,在后台运行一个.我想在两个程序之间建立一个通信,所以我可以告诉前台的那个程序做某事,然后告诉其他程序做某事.比如在前台程序上我按下一个按钮,然后告诉其他程序做某事.回答这个问题的最佳方法是什么?
我知道我之前已经问过这个问题,但是我觉得人们可能发现这个问题太具体了,所以我写了一个更简化的问题.
我正在使用 rpyc 在 python 中编写一个程序。我的目标是创建一个简单的服务器,它接受来自客户端的数据字节(字符串)。我对 python 和 rpyc 都很陌生。这是我的 server.py 代码:
from rpyc.utils.server import ThreadedServer # or ForkingServer
class MyService(rpyc.Service):
# My service
pass
if __name__ == "__main__":
server = ThreadedServer(MyService, port = 18812)
server.start()
Run Code Online (Sandbox Code Playgroud)
然后是我的 client.py 代码:
from rpyc.core.stream import SocketStream
from rpyc.core.channel import Channel
b = SocketStream.connect("localhost", 18812)
c = Channel(b, compress=True)
c.send("abc")
b.close()
c.close()
Run Code Online (Sandbox Code Playgroud)
然而,当运行我的 client.py 时,控制台中出现错误。如果我理解正确,我必须在 server.py 中创建一个与客户端关联的流。是这样吗?我怎样才能做到这一点?