Python IP地址模块

Python IP地址模块,python,module,pip,ip-address,Python,Module,Pip,Ip Address,我希望在安装python模块时能得到一些帮助,特别是在ipaddress模块方面。这个问题快把我逼疯了 简而言之,我在我的Windows机器上编写了一个python3脚本,它使用了ipaddress模块。这绝对行得通 我已经将它复制到我想要在其上运行的Linux box Ubuntu 18.04,但是当我运行它时,我得到以下错误: File "/opt/netbox-2.6.7/netbox/reports/address-parents.py", line 82, in test_aci_en

我希望在安装python模块时能得到一些帮助,特别是在ipaddress模块方面。这个问题快把我逼疯了

简而言之,我在我的Windows机器上编写了一个python3脚本,它使用了ipaddress模块。这绝对行得通

我已经将它复制到我想要在其上运行的Linux box Ubuntu 18.04,但是当我运行它时,我得到以下错误:

File "/opt/netbox-2.6.7/netbox/reports/address-parents.py", line 82, in test_aci_endpoints
  if endpoint.subnet_of(summary):
AttributeError: 'IPv4Network' object has no attribute 'subnet_of'
当我查询模块时,我得到以下信息:

nbxla01lv:/opt/netbox/netbox$ pip3 show ipaddress
Name: ipaddress
Version: 1.0.23
Summary: IPv4/IPv6 manipulation library
Home-page: https://github.com/phihag/ipaddress
Author: Philipp Hagemeister
Author-email: phihag@phihag.de
License: Python Software Foundation License
Location: /home/andy/.local/lib/python3.6/site-packages
Requires: 
这让我有点困惑,因为在查看该模块的主页时,它似乎是Python2.7的3.3+ipaddress模块的一个端口。无论如何,1.0.23版是最新版本,包含“子网\子网”功能

另外,如果我查看/home/andy/.local/lib/python3.6/site-packages/ipaddress.py中的实际代码本身,我可以看到代码中的实际函数:

nbxla01lv:/home/andy/.local/lib/python3.6/site-packages$ cat ipaddress.py | grep subnet_of
        if not other.subnet_of(self):
            if other.subnet_of(s1):
            elif other.subnet_of(s2):
    def _is_subnet_of(a, b):
    def subnet_of(self, other):
        return self._is_subnet_of(self, other)
        return self._is_subnet_of(other, self)
我相信这是件简单的事情,但任何帮助都将不胜感激

谢谢

编辑-示例代码

ipaddress模块是标准库的一部分,所以我猜您正在导入该版本

您还可以验证实际导入的模块

>>> import ipaddress
>>> ipaddress.__file__
'/Users/rickard/.pyenv/versions/3.7.4/lib/python3.7/ipaddress.py'

最有可能的是,在当前安装的Python中,ipaddress模块中缺少subnet_方法,看起来像3.6

A。您可以编写一小段代码来重现该问题吗?B您是否考虑过使用pipenv或类似软件,以便在两次安装中获得完全相同的软件包版本?我已经用示例代码编辑了我的原始帖子,谢谢:好的,看来我们有进展了…>>>导入ipaddress>>>ipaddress.\uuuuu文件\uuuu'/usr/lib/python3.6/ipaddress.py',我刚刚选中了它,它不包含“subnet\u of”方法。那么下一个问题,我怎样才能最好地解决这个问题?在Ubuntu盒上升级python?我建议升级python。非常感谢您的帮助,我只想说升级到python 3.7解决了这个问题。
>>> import ipaddress
>>> ipaddress.__file__
'/Users/rickard/.pyenv/versions/3.7.4/lib/python3.7/ipaddress.py'