Нет модуля с именем 'urlparse, хотя я не использую urlparse - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь запустить следующий код в google colab, чтобы сгенерировать графики для Задачи Продавца, но при запуске я получаю сообщение об ошибке, так как модуль с именем urlparse не найден, хотя я не использовал такой модуль. Я пробовал! Pip install 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")

1 Ответ

1 голос
/ 06 марта 2020

urlparse - это встроенная python2 библиотека, имя которой было изменено на urllib.parse в python3. Возможно, вы используете библиотеку или версию библиотеки, которая еще не была обновлена ​​для работы с python3.

. Лучше всего запустить обновление ваших зависимостей. Если вы по-прежнему получаете сообщение об ошибке, поделитесь трассировкой стека, чтобы мы могли выяснить, где источник этой ошибки.

...