相关疑难解决方法(0)

如何在Windows中将Python脚本作为服务运行?

我正在描绘一组程序的架构,这些程序共享存储在数据库中的各种相互关联的对象.我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,以及通过该服务访问对象的其他程序.

我目前的目标是将Python和Django框架作为实现该服务的技术.我很确定我想知道如何在Linux中守护Python程序.但是,它是系统应支持Windows的可选规范项.我对Windows编程没什么经验,也没有Windows服务的经验.

是否可以将Python程序作为Windows服务运行(即在没有用户登录的情况下自动运行)?我不一定要实现这一部分,但我需要大致了解如何做以决定是否按照这些方式进行设计.

编辑:感谢目前为止的所有答案,它们非常全面.我想知道一件事:Windows如何了解我的服务?我可以使用本机Windows实用程序进行管理吗? 在/etc/init.d中放置一个启动/停止脚本相当于什么?

python windows cross-platform

245
推荐指数
9
解决办法
22万
查看次数

virtualenv如何运作?

我检查了激活脚本,它看起来我所做的一切是:

  • 设置VIRTUAL_ENV env
  • 在PATH前添加$ VIRTUAL_ENV/bin

如何virtualenv通过这些提供神奇的虚拟环境?我错过了什么?

python virtualenv

53
推荐指数
3
解决办法
1万
查看次数

如何在Windows 7中安装pywin32模块

我正在尝试安装pywin32.我从sourceforge.net下载了它.我跑的时候

setup.py install
Run Code Online (Sandbox Code Playgroud)

它显示"无法找到vcvarsall.bat".我用Google搜索,发现我必须安装MinGW并设置路径然后运行

python setup.py build --compiler=mingw32
Run Code Online (Sandbox Code Playgroud)

但它正在显示

Can't find a version in Windows.h
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?(我安装了Visual Studio 2010 Ultimate的试用版,并安装了MinGW C和C++编译器.操作系统:Windows 7.)

任何人都可以告诉我从哪里下载已经在MinGW中编译的Python二进制文件的源代码,所以我不必这么做.或者,如果我可以获得已经拥有Windows模块的python.

c python compiler-construction mingw pywin32

47
推荐指数
3
解决办法
16万
查看次数

从Windows服务访问环境变量

我试图用C#编写Windows服务.我需要找到某个文件的路径,该文件存储在环境变量中.在常规的C#控制台应用程序中,我可以通过以下行实现:

string t = System.Environment.GetEnvironmentVariable("TIP_HOME");
Run Code Online (Sandbox Code Playgroud)

如果我把它写到控制台,我发现它是成功的.

现在,如果我在Windows服务中尝试相同的代码,则该字符串t为空.

知道为什么吗?

c# permissions windows-services

23
推荐指数
3
解决办法
2万
查看次数

如何在python中激活pyvenv vitrualenv?(activate_this.py已被删除?)

我正在使用Python 3.4,并创建了pyvenv,我希望在python进程中激活它.使用virtualenv,我曾经使用过activate_this.py,但这似乎在pyvenv中消失了.

现在有一种简单的方法可以有效地将当前的解释器更改为virtualenv解释器吗?我可能会搞乱PATH(这就是做了什么activate_this.py),但我想要一种更简单,更稳定的方式.

这适用于wsgi.py.

mod-wsgi python-3.x

19
推荐指数
1
解决办法
3920
查看次数

Python Windows 服务-traceback.print_exception() 失败

我一直在尝试将 Python 脚本(通过 Pyinstaller 的 .PY 和 .EXE)设置为 Windows 服务。我面临的挑战是遇到的大多数问题似乎与我自己的问题无关。

我成功设置了一次虚拟环境,并运行了一个示例服务。但是,在记录我的步骤并尝试重新创建虚拟环境并运行服务时,我遇到了问题。

> python -m venv venv
> venv\scripts\activate.bat
> pip install pypiwin32
Run Code Online (Sandbox Code Playgroud)

然后按照此StackOverflow Question中的说明进行操作。我按照lindsay.stevens.au的回答运行:

> python myvenv\Scripts\pywin32_postinstall.py -install
Run Code Online (Sandbox Code Playgroud)

然后复制venv\Lib\site-packages\win32\pythonservice.exevenv\Scripts\pythonservice.exe

我一直在 GitHub 上使用 HaroldMils 的这个服务示例作为app.py

当我运行这个时:

> python app.py install
Installing service PythonExample
Service installed

> python app.py debug
Debugging service PythonExample - press Ctrl+C to stop.
Error 0xC0000005 - Python could find the service class in the module

<Error …
Run Code Online (Sandbox Code Playgroud)

python windows service pywin32

7
推荐指数
1
解决办法
3002
查看次数

REG添加REG_MULTI_SZ多行注册表值

要添加REG_MULTI_SZ多行注册表值,我可以这样做

reg.exe ADD "HKLM\path\to\registry\key" /v RegistryValue /t REG_MULTI_SZ /d "abc\0def\0"
Run Code Online (Sandbox Code Playgroud)

这将添加("abc","def").

但是如果我需要添加("abc","","def"),即两者之间的空项呢?

reg.exe ADD "HKLM\path\to\registry\key" /v RegistryValue /t REG_MULTI_SZ /d "abc\0\0def\0"
Run Code Online (Sandbox Code Playgroud)

给我一个"无效参数"错误.

windows registry command-line

3
推荐指数
2
解决办法
4万
查看次数