我试图在google colab上运行以下代码来为Salesman问题生成图形,但当我运行它时,我得到的错误是没有找到名为urlparse的模块,即使我没有使用这样的模块。我尝试过!pip安装urlparse,但没有这样的模块(错误:找不到满足urlparse要求的版本(来自版本:无)错误:找不到与urlparse匹配的发行版)。为了解决这个问题,我很困惑这个错误到底是从哪里出现的
import time
import argparse
import pprint as pp
import os
import pandas as pd
import numpy as np
from concorde.tsp import TSPSolver
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--num_samples", type=int, default=10000)
parser.add_argument("--num_nodes", type=int, default=20)
parser.add_argument("--node_dim", type=int, default=2)
parser.add_argument("--filename", type=str, default=None)
opts = parser.parse_args()
if opts.filename is None:
opts.filename = f"tsp{opts.num_nodes}_concorde.txt"
# Pretty print the run args
pp.pprint(vars(opts))
set_nodes_coord = np.random.random([opts.num_samples, opts.num_nodes, opts.node_dim])
with open(opts.filename, "w") as f:
start_time = time.time()
for nodes_coord in set_nodes_coord:
solver = TSPSolver.from_data(nodes_coord[:,0], nodes_coord[:,1], norm="GEO")
solution = solver.solve()
f.write( " ".join( str(x)+str(" ")+str(y) for x,y in nodes_coord) )
f.write( str(" ") + str('output') + str(" ") )
f.write( str(" ").join( str(node_idx+1) for node_idx in solution.tour) )
f.write( str(" ") + str(solution.tour[0]+1) + str(" ") )
f.write( "\n" )
end_time = time.time() - start_time
print(f"Completed generation of {opts.num_samples} samples of TSP{opts.num_nodes}.")
print(f"Total time: {end_time/3600:.1f}h")
print(f"Average time: {(end_time/3600)/opts.num_samples:.1f}h")发布于 2020-03-06 08:07:57
urlparse是一个内置的python2库,在python3中将其名称更改为urllib.parse。您可能正在使用某个库或某个版本的库,但该库尚未升级为可与python3一起使用。
你最好的办法就是对你的依赖项进行升级。如果你仍然得到一个错误,然后分享堆栈跟踪,以便我们可以帮助你找出错误的来源。
https://stackoverflow.com/questions/60555726
复制相似问题