marcopagot
@marcopagot (Asuka)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

データサイエンス100本ノックがdockerのエラー(command not fond)のせいで出来ない

解決したいこと

データサイエンス100本ノックの環境構築が永遠にできず泣いてます。

現状)
python初学者です。データサイエンス100本ノックをやろうと、データサイエンティスト協会がgit上に公開している100本ノックをやろうという思いに至り
「install」に書いてある通り、Terminal上で
①git clone(URL)
②cd 100knocks-preprocess
まで成功して、Desktop上の「100本」フォルダに格納するところまで成功しました。
DockerDesktopに関しては元々aplicationフォルダにインストール済みでしたので
いざ③docker-compose up -d --build を実行したところ
/usr/local/bin/docker-compose: line 1: Not: command not found
というエラーが出てしまいました。

発生している問題・エラー

docker-compose up -d --build

出力

/usr/local/bin/docker-compose: line 1: Not: command not found

調べても解決ができなかった為、jupyterファイルを開き上記エラーを無視して始めようとすると下記エラーが出ました。

入力

import os
import pandas as pd
import numpy as np
from datetime import datetime, date
from dateutil.relativedelta import relativedelta
import math
import psycopg2
from sqlalchemy import create_engine
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from imblearn.under_sampling import RandomUnderSampler

pgconfig = {
    'host': 'db',
    'port': os.environ['PG_PORT'],
    'database': os.environ['PG_DATABASE'],
    'user': os.environ['PG_USER'],
    'password': os.environ['PG_PASSWORD'],
}

# pd.read_sql用のコネクタ
conn = psycopg2.connect(**pgconfig)

df_customer = pd.read_sql(sql='select * from customer', con=conn)
df_category = pd.read_sql(sql='select * from category', con=conn)
df_product = pd.read_sql(sql='select * from product', con=conn)
df_receipt = pd.read_sql(sql='select * from receipt', con=conn)
df_store = pd.read_sql(sql='select * from store', con=conn)
df_geocode = pd.read_sql(sql='select * from geocode', con=conn)

出力

KeyError: 'PG_PORT'

少し調べたところ、pathの通し方が問題あるのでは?という考えに至っているのですが
まだ、pathの意味も明確に分かっておらず、、、
せっかくの良教材である100本ノックが出来ず困っておりますので
どなたか、解決方法をご存知の方、ご教示の程宜しくおお願い致します。

ps.同じような記事をあげているので、そちらも参考にして頂けるとありがたいです。
https://qiita.com/marcopagot/questions/acfacef414a581c11bf9

0

1Answer

@tk22 さん、

その記事で解説されている /usr/bin にシンボリックリンクを作る方法は macOS では動きません。 macOS では /usr/bin は読み取り専用だからです。 パスの通った場所にシンボリックリンクを作るのではなく /usr/local/bin にパスを通すべきです。

そもそも /usr/local/bin/docker-compose: line 1: Not: command not found はパスが通っていないエラーではありません。パスは通っていて docker-compose は実行できていますが、その1行目に Not と書いてあり(何かの間違いでテキストファイルを docker-compose として保存したのでしょう) Not コマンドを実行しようとしてエラーが出ています。


本質問については派生して別の質問が投稿されていましたので、そちらでまとめて回答しました。 https://qiita.com/marcopagot/questions/acfacef414a581c11bf9

1Like

Your answer might help someone💌