Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python self.“socket.bind(地址)文件”&书信电报;字符串>&引用;,第1行,在bind TypeError中:需要一个整数_Python_Python 2.7_Multiprocessing - Fatal编程技术网

Python self.“socket.bind(地址)文件”&书信电报;字符串>&引用;,第1行,在bind TypeError中:需要一个整数

Python self.“socket.bind(地址)文件”&书信电报;字符串>&引用;,第1行,在bind TypeError中:需要一个整数,python,python-2.7,multiprocessing,Python,Python 2.7,Multiprocessing,我正在使用Python2.6并尝试为给定的端口和authkey启动一个管理器 import multiprocessing from multiprocessing.managers import SyncManager def make_server_manager(port, authkey): # ... class JobQueueManager(SyncManager): pass #

我正在使用Python2.6并尝试为给定的端口和authkey启动一个管理器

import multiprocessing
from multiprocessing.managers import SyncManager

    def make_server_manager(port, authkey):
            # ...

        class JobQueueManager(SyncManager):
                pass
        # ...

        manager = JobQueueManager(address=("127.0.0.1", port), authkey=authkey)
        manager.start()

        return manager
但我收到了错误信息:

[hue@sandbox ~]$ python ####.py 5000 abc
Process JobQueueManager-1:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 517, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 136, in __init__
    self.listener = Listener(address=address, backlog=5)
  File "/usr/lib64/python2.6/multiprocessing/connection.py", line 106, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/usr/lib64/python2.6/multiprocessing/connection.py", line 227, in __init__
    self._socket.bind(address)
  File "<string>", line 1, in bind
TypeError: an integer is required
Traceback (most recent call last):
...
    manager = make_server_manager(PORTNUM, AUTHKEY)
  File "####.py", line 145, in make_server_manager
    manager.start()
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 499, in start
    self._address = reader.recv()
EOFError
[hue@sandbox~]$python#####.py 5000 abc
进程JobQueueManager-1:
回溯(最近一次呼叫最后一次):
文件“/usr/lib64/python2.6/multiprocessing/process.py”,第232行,在_bootstrap中
self.run()
文件“/usr/lib64/python2.6/multiprocessing/process.py”,第88行,正在运行
自我目标(*自我参数,**自我参数)
文件“/usr/lib64/python2.6/multiprocessing/managers.py”,第517行,在运行服务器中
服务器=cls.\u服务器(注册表、地址、身份验证码、序列化程序)
文件“/usr/lib64/python2.6/multiprocessing/managers.py”,第136行,在__
self.listener=listener(地址=地址,待办事项=5)
文件“/usr/lib64/python2.6/multiprocessing/connection.py”,第106行,在__
self.\u listener=SocketListener(地址、家庭、待办事项)
文件“/usr/lib64/python2.6/multiprocessing/connection.py”,第227行,在__
self.\u socket.bind(地址)
文件“”,第1行,处于绑定状态
TypeError:需要一个整数
回溯(最近一次呼叫最后一次):
...
管理器=生成服务器管理器(PORTNUM,AUTHKEY)
文件“######.py”,第145行,在make#u服务器管理器中
manager.start()
文件“/usr/lib64/python2.6/multiprocessing/managers.py”,第499行,在开始处
self.\u address=reader.recv()
伊奥费罗
有人能建议在地址中输入什么吗?似乎在尝试绑定到地址时失败了。如错误所示,地址怎么可能是整数?或者是我在运行时提供的端口5000

给出了具有类似输入的多处理线程,以供参考:


它可能依赖于
JobQueueManager
\uuu init\uuu
及其
启动。你能给他们看一下吗?@thefourtheye:它应该使用SyncManager
\uuuuu init\uuuuu
start
。我已经在代码中添加了JobQueueManager的定义。您可以从Python 2.6的标准SyncManager类中检查实现,您可能需要
port=int(port)
@Max:我所做的是完全删除了
sys.argv
,并对端口和authkey进行了硬编码。这是暂时的工作