我正在尝试让 Python 包 OSMnx 在我的 Windows10 机器上运行。我对 python 还是个新手,所以在基础知识方面很挣扎。
我已按照此处的说明操作 https://osmnx.readthedocs.io/en/stable/并成功创建了一个新的 conda 环境以供其运行。安装似乎进行得很顺利。
但是,一旦我尝试导入它,就会出现以下错误
>>> import osmnx as ox
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\.conda\envs\ox\lib\site-packages\osmnx\__init__.py", line 3, in <module>
from ._api import *
File "C:\Users\User\.conda\envs\ox\lib\site-packages\osmnx\_api.py", line 4, in <module>
from .distance import get_nearest_edge
File "C:\Users\User\.conda\envs\ox\lib\site-packages\osmnx\distance.py", line 5, in <module>
import networkx as nx
File "C:\Users\User\.conda\envs\ox\lib\site-packages\networkx\__init__.py", line 114, in <module>
import networkx.generators
File "C:\Users\User\.conda\envs\ox\lib\site-packages\networkx\generators\__init__.py", line 14, in <module>
from networkx.generators.intersection import *
File "C:\Users\User\.conda\envs\ox\lib\site-packages\networkx\generators\intersection.py", line 13, in <module>
from networkx.algorithms import bipartite
File "C:\Users\User\.conda\envs\ox\lib\site-packages\networkx\algorithms\__init__.py", line 16, in <module>
from networkx.algorithms.dag import *
File "C:\Users\User\.conda\envs\ox\lib\site-packages\networkx\algorithms\dag.py", line 23, in <module>
from fractions import gcd
ImportError: cannot import name 'gcd' from 'fractions' (C:\Users\User\.conda\envs\ox\lib\fractions.py)
我在跑 conda version : 4.8.2
conda-build version : 3.18.11
python version : 3.7.6.final.0
有人能给我建议吗?对不起,如果这很明显,正如我所说,我对这一切都很陌生。谢谢
最佳答案
模块 fractions
是 Python 标准库的一部分。那里used to be a function gcd
,正如链接的文档所说,它是:
Deprecated since version 3.5: Use
math.gcd()
instead.
自函数
gcd
已从模块中移除 fractions
在 Python 3.9 中,问题似乎使用 Python 3.9,而不是 Python 3.7.6 作为问题注释,因为 Python 版本 still had fractions.gcd
.错误由
networkx
引发.升级到最新版本networkx
预计可以避免这个问题:pip install -U networkx
确实,从 networkx
避免此错误的更改是:https://github.com/networkx/networkx/commit/b007158f3bfbcf77c52e4b39a81061914788ddf9#diff-21e03bb1d46583650bcad6e960f2ab8a5397395c986942b59314033e963dd3fcL23 ,并已作为 networkx==2.4
的一部分发布, networkx==2.5
, 和 networkx==2.5.1
,正如提交的 GitHub 页面上列出的标签所告知的那样。当前行在 networkx
是:https://github.com/networkx/networkx/blob/d70b314b37168f0ea7c5b0d7f9ff61d73232747b/networkx/algorithms/dag.py#L9 ,即 from math import gcd
.
关于python - 在 conda 上运行 OSMnx 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67297792/