前提
pyconcordeにてexamplesファイル内のus_state_capitals.pyを実行したいと思っています。
実現したいこと
us_state_capitals.pyの実行
ディレクトリにおけるファイルのimportの仕方
発生している問題・エラーメッセージ
pyconcordeをインストール後、ローカル環境でpython3 us_state_capitals.py と実行
エラーメッセージ
<module>
from concorde.tsp import TSPSolver
ModuleNotFoundError: No module named 'concorde'
該当のソースコード
python
1ソースコード 2```# -*- coding: utf-8 -*- 3from __future__ import division, print_function 4 5import numpy as np 6import pandas as pd 7 8from concorde.tsp import TSPSolver 9 10# Source for state capital data: 11# http://www.jetpunk.com/data/countries/united-states/state-capitals-list 12 13state_capitals = pd.read_table( 14 "us_state_capitals.tsv", header=None, 15 names=['state', 'city', 'lat', 'lon'] 16) 17 18# Keep only the lower 48 19state_capitals = state_capitals[ 20 (state_capitals.state != 'Alaska') & (state_capitals.state != 'Hawaii')] 21state_capitals.reset_index(inplace=True, drop=True) 22 23# Instantiate solver 24solver = TSPSolver.from_data( 25 state_capitals.lat, 26 state_capitals.lon, 27 norm="GEO" 28) 29 30# Find tour 31tour_data = solver.solve() 32assert tour_data.success 33 34solution = state_capitals.iloc[tour_data.tour] 35print("Optimal tour:") 36print(u' -> '.join( 37 '{r.city}, {r.state}'.format(r=row) for _, row in solution.iterrows())) 38 39# Make a plot 40import matplotlib.patches as mpatches 41import matplotlib.pyplot as plt 42import shapely.geometry as sgeom 43 44import cartopy.crs as ccrs 45import cartopy.io.shapereader as shpreader 46 47ax = plt.axes([0, 0, 1, 1], projection=ccrs.LambertConformal()) 48ax.set_extent([-125, -66.5, 20, 50], ccrs.Geodetic()) 49 50shapename = 'admin_1_states_provinces_lakes_shp' 51states_shp = shpreader.natural_earth(resolution='110m', 52 category='cultural', name=shapename) 53 54ax.background_patch.set_visible(False) 55ax.outline_patch.set_visible(False) 56 57tour = sgeom.LineString(list(zip(solution.lon, solution.lat))) 58capitals = sgeom.MultiPoint(list(zip(solution.lon, solution.lat))) 59 60for state in shpreader.Reader(states_shp).geometries(): 61 facecolor = [0.9375, 0.9375, 0.859375] 62 edgecolor = 'black' 63 64 ax.add_geometries([state], ccrs.PlateCarree(), 65 facecolor=facecolor, edgecolor=edgecolor) 66 67ax.add_geometries([tour], ccrs.PlateCarree(), 68 facecolor='none', edgecolor='red') 69for lat, lon in zip(solution.lat, solution.lon): 70 ax.plot(lon, lat, 'ro', transform=ccrs.PlateCarree()) 71 72plt.savefig("us_state_capitals.png", bbox_inches='tight') 73plt.show()
試したこと
ターミナルにてpython3 us_state_capitals.pyを実行
補足情報(FW/ツールのバージョンなど)
https://github.com/jvkersch/pyconcorde
こちらがpyconcordeです。
