質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1355閲覧

pythonにおけるconcordeの実行方法

Kim

総合スコア0

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/10/27 06:20

前提

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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/10/27 07:02

> pyconcordeをインストール とは、具体的に何をしたのでしょうか?
jbpb0

2022/10/27 07:47

> pip install -e です は、 pip install -e . の書き間違いでしょうか? 実際の実行では、「.」を付けてましたでしょうか?
Kim

2022/10/27 07:52

すみません、こちらの記載ミスではありますが、「.」はつけて実行いたしました。 これを実行し、現在ローカルな環境にてpyconcordeファイルをインストールしています。 インストールしたのちに、pyconcordeファイル内のexamplesファイルのus_state_capitals.pyを実行すると上記のエラーが出るといった内容です。 初めて利用するため、拙い文章ですみません。
jbpb0

2022/10/27 07:59

pip install -e . を実行したのと同じ状態で pip show numpy を実行してください いろいろ表示される中に「Location:」で始まる行があるので、そこに書かれてるパスを記録してください 次に、pythonで from concorde.tsp import TSPSolver がうまくいかない状態で、下記のpythonコードを実行してください import sys import pprint pprint.pprint(sys.path) たくさんパスが表示されますが、その中にpip show numpyで記録したパスが入ってますでしょうか?
Kim

2022/10/27 08:13

pip show numpyを実行すると /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages import sys import pprint pprint.pprint(sys.path) を実行すると /Desktop/tsp/pyconcorde/examples', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages'] と同じパスが出てきました。
jbpb0

2022/10/27 08:42

> pyconcordeファイル内のexamplesファイルのus_state_capitals.pyを実行すると上記のエラーが出る エラーが出るpyファイルの先頭に、下記を追加してみてください import sys sys.path.append("/Desktop/tsp/pyconcorde")
Kim

2022/10/31 00:54

教えてくださった方法で実行したところ下記のエラーが出ました。 line 5 from __future__ import division, print_function ^ SyntaxError: from __future__ imports must occur at the beginning of the file そのため、この1行をファイルの先頭に記述したものを実行しました。 実行結果は下記のようになりました。 line 10, in <module> from concorde._concorde import _CCutil_gettsplib, _CCtsp_solve_dat ModuleNotFoundError: No module named 'concorde._concorde'
jbpb0

2022/11/01 10:49 編集

pyファイルへの > import sys sys.path.append("/Desktop/tsp/pyconcorde") の追加はやめて元に戻して、ターミナルで下記のようにして実行してみてください PYTHONPATH=/Desktop/tsp/pyconcorde:$PYTHONPATH python us_state_capitals.py それでも > ModuleNotFoundError: No module named 'concorde._concorde' というエラーが出るなら、「/Desktop/tsp/pyconcorde/concorde」にある、ファイル名が「_concorde」で始まるファイルの、ファイル名とサイズを教えてください 【追記】 確認ですが、「pip install -e .」を実行した時のカレントディレクトリは「/Desktop/tsp/pyconcorde」でしたでしょうか? また、「pip install -e .」実行後に、「/Desktop/tsp/pyconcorde/concorde」以下のファイルを削除したり移動したりはしてませんでしょうか?
Kim

2022/11/03 01:27

>PYTHONPATH=/Desktop/tsp/pyconcorde:$PYTHONPATH python us_state_capitals.py この湯尾に実行したところ解決いたしました。 ありがとうございます。
guest

回答1

0

pyconcordeをインストール後、ローカル環境でpython3 us_state_capitals.py と実行

pyconcordeをインストールした場所が「/Desktop/tsp/pyconcorde」なら、ターミナルで下記のようにして実行してみてください

terminal

1PYTHONPATH=/Desktop/tsp/pyconcorde:$PYTHONPATH python us_state_capitals.py

投稿2022/11/03 02:01

jbpb0

総合スコア7658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問