首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在windows上与python一起使用websockify或将websockify编译为windows可执行文件(一次用于多个客户端连接)

如何在windows上与python一起使用websockify或将websockify编译为windows可执行文件(一次用于多个客户端连接)
EN

Stack Overflow用户
提问于 2014-09-07 15:36:53
回答 2查看 5K关注 0票数 4

我想让websockify 0.6.0在windows上运行,但没有任何运气,

我尝试过python websockify.py 1501 10.0.0.141:1501,但这并不好,会出现错误,比如:

Traceback (most recent call last): File "websockify.py", line 1, in <module> run NameError: name 'run' is not defined

我也尝试过将Websockify编译为Windows可执行表,但这也不起作用--我使用了以下命令run.exe 1501 10.0.0.141:1501,它在开始时看起来很有希望,将以下内容输出到控制台:

WARNING: no 'resource' module, daemonizing is disabled WebSocket server settings: - Listen on :1501 - Flash security policy server - No SSL/TLS support (no cert file) - proxying from :1501 to 10.0.0.141:1501

但是,在尝试使用以下浏览器连接之后,ws://localhost:1501

**它输出以下错误

Traceback (most recent call last): File "run", line 5, in <module> File "websockify\websocketproxy.pyc", line 419, in websockify_init File "websockify\websocket.pyc", line 1018, in start_server UnboundLocalError: local variable 'exc' referenced before assignment

是否知道如何在windows上使用websockify /或如何将已编译的websockify用作windows可执行文件?

EN

回答 2

Stack Overflow用户

发布于 2014-09-27 00:45:51

让websockify在Windows上工作的最简单方法是使用websockify的Node.js版本(在另一个/js目录中)。它完全出格,没有恶作剧的必要。

票数 1
EN

Stack Overflow用户

发布于 2014-09-17 22:32:33

要解决这个问题,请为您的示例源使用以下修改的命令,从每个步骤的开始开始,看看是否有用:

  • 首先,安装便携式Python 2.7
  • 然后您需要修改setup.py (--这似乎是您获得第一个错误的原因,因为您可能还没有定义运行):
代码语言:javascript
复制
from setuptools import setup, find_packages
# add (line 2):
import py2exe

setup(name=name,
# add (line 10):
console=['run'],
  • 通过检查setup.py并确保它包括运行,确保上面的操作正确执行。
代码语言:javascript
复制
- **In your local code, import the** [**resources**](https://docs.python.org/2/library/resource.html) **module to allow you to monitor, measure and control system resources utilized by your program**

代码语言:javascript
复制
import resource
  • 检查您的局部变量exc,并确保在调用它之前为它分配了一个值(我猜您可能将一个系统变量归因于它,但是python无法这样做,因为您没有导入资源,因此没有分配它)。如果您愿意,在对此响应的注释中提供一个代码示例,我将更仔细地查看这个部分。
  • 返回到源指南,导航到命令提示符中的websockify文件夹,然后执行以下操作来编译websockify:
代码语言:javascript
复制
[Your path to Portable Python install]\App\python.exe setup.py py2exe --includes numpy
  • 现在,您将在websockify目录中看到一个新的dir 'dist‘,其中包含已编译的exe。提供的一个例子是:
代码语言:javascript
复制
run.exe 5901 localhost:5900

如果适合的话,还有一个指南这里可以将websockify作为Windows运行(同样在您的源代码中提到)。

打开两个似乎会给您带来问题的文件(websockify\websocketproxy.pyc和websockify\websocket.pyc ),并确保对名为"exc“的变量的任何引用都是在之后引用的(如果尚未修改这些文件,则很有可能出现问题)。

我相信您的代码依赖于对系统资源(如端口等)的更改和监视,并且您不允许您的代码拥有这些权限,因此它需要资源模块。如果要从程序(我称之为本地代码)调用run.exe,则需要在顶部导入资源。如果您只是直接从命令行调用run.exe程序,那么尝试制作这个新程序,看看这是否有帮助。如果没有,请发送您的websockify文件夹和run.exe的内容,我将查看。

代码语言:javascript
复制
# Program Name: goAndRun.py

# Code:

import sys, string, os, arcgisscripting, resource
os.chdir( 'C:\\[Path_to_the_dir_containing_run.exe]' )
os.system( '"C:\\[Path_to_the_dir_containing_run.exe]\run.exe, 5901 localhost:5900"' )

然后使用以下命令:

代码语言:javascript
复制
python goAndRun.py

由于不在您的环境中,我无法判断这是否会像我所写的那样执行。最后一行也可能是:

代码语言:javascript
复制
os.system( '"C:\\[Path_to_the_dir_containing_run.exe]\run.exe"', '5901 localhost:5900' )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25711953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档