인프런 커뮤니티 질문&답변

도전적인 사자님의 프로필 이미지

작성한 질문수

파이썬 데이터시각화 분석 실전 프로젝트

import folium에서 ModuleNotFoundError : No module named 'folium'

작성

·

5.4K

0

cmd에서  conda install folium -c conda-forge

명령어 통해서 folium 받았는데요 ModuleNotFoundError : No module named 'folium' 뜹니다.

참고로 pip list 는 아래 같습니다.

pip list conda

pip list python

이 문제로 쥬피터에서 Geo Chart 를 못받아 오고 있는데요 어떻게 해야 되는건가요?

 

답변 5

0

저도 해당 강의 듣다 folium을 anaconda로 설치했는데 안되서 엄청 헤맸습니다.

제 경우는 Jupyer notebook으로는 되는데 파이참에서는 불러와지지가 않았습니다.

위에 방법도 되지 않아서 구글링한 결과 설치된 경로랑 실행하고 있는 파일 위치가 달라서 안되더라고요.

anaconda로 설치한 결과 C/User/[xxx]/Anaconda3 / Lib/site-packages 에 설치되어 있었는데

C/User/[xxx]/yongg/Anaconda3/envs/tutorial/Lib/site-packages 로 아래 두 파일을 복붙하니 잘 작동됩니다

혹시 folium말고도 다른 모듈들도 저와 같은 경우 생기는 분들 계실까봐 남겨놓습니다 ~

0

안녕하세요.

알려주신 첫번째, 세번째 방법은 같은 오류가 발생 했고

두번째 방법에서 python3 -m pip install folium  중 3 빼고 

python -m pip install folium 로 시행 했더니 문제 해결 했습니다.

감사합니다. 강의 잘 듣겠습니다. :)

0

안녕하세요?

정상적으로 작동해야하는데 오류가 생기면 원인을 하나씩 테스트 해보며 찾아야 하는데,

유사한 사례를 구글링해보니 몇 가지 해결사례가 나오는데, 

1. 다시 한번 설치명령을 하고 다시 실행해보세요.  conda install -c conda-forge folium

2. 이런 명령으로 오류를 고쳤다는 예도 있네요. python3 -m pip install folium

만약 두 가지 방법으로도 해결이 안되면(모두 커멘드 창은 다시 실행해야 합니다.)

소스 내용 중 발생원인을 줄여서 테스트 해보는 것이 좋겠네요.

하기 소스 중 HeatMap관련 소스를 없애고 실행해 보시기 바랍니다.

만약 이렇게 실행이되면 HeatMap관련 문제로 축소할 수 있겠습니다.

실행해 보고 다시 알려주세요. 감사합니다.

# Import folium for Geo Map
import folium

# Create basic Folium marathon map
marathon_map = folium.Map(location=[42.324830,-71.259660],
                       tiles = "Stamen Toner",
                       zoom_start = 11)

0

안녕하세요. 

답변 감사합니다. 강의 잘 듣고 있습니다.

그런데 알려주신 1번, 2번 해결책 모두 안됩니다. 

1번은 already satisfied, 2번은 Action failed, No change라고 뜨고

cmd 키고 다시 주피터 노트북 시행해서 코드 넣었어도 같은 오류가 뜹니다.

StackoverFlow에도 비슷한 문제를 가진 사람이 있어서

버전 충돌도 확인 했는데 왜 안되는 지 모르겠네요.

※ cmd창 결과, 정확한 에러 메세지, 소스코드는 아래 붙였습니다.

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-2a2735512ee0> in <module>
     94 
     95 # Import folium for Geo Map
# Import pandas as a alias 'pd'
import pandas as pd

# Load the CSV files "marathon_results_2017.csv" under "data" folder
marathon_results_2017 = pd.read_csv("/bigdata/data/marathon_results_2017.csv")

#Drop unnecessary columns
marathon_2017 = marathon_results_2017.drop(['Unnamed: 0','Bib', 'Name', 'Age', 'City', 'State', 'Country', 'Citizen', 'Unnamed: 9', 'Half', 'Pace', 'Proj Time', 'Official Time', 'Overall', 'Gender', 'Division'], axis='columns')

# Import Numpy Library and call it as np
import numpy as np

# Convert using pandas to_timedelta method
marathon_2017['5K'] = pd.to_timedelta(marathon_2017['5K'])
marathon_2017['10K'] = pd.to_timedelta(marathon_2017['10K'])
marathon_2017['15K'] = pd.to_timedelta(marathon_2017['15K'])
marathon_2017['20K'] = pd.to_timedelta(marathon_2017['20K'])
marathon_2017['25K'] = pd.to_timedelta(marathon_2017['25K'])
marathon_2017['30K'] = pd.to_timedelta(marathon_2017['30K'])
marathon_2017['35K'] = pd.to_timedelta(marathon_2017['35K'])
marathon_2017['40K'] = pd.to_timedelta(marathon_2017['40K'])

# Convert time to seconds value using astype method
marathon_2017['5K'] = marathon_2017['5K'].astype('m8[s]').astype(np.int64)
marathon_2017['10K'] = marathon_2017['10K'].astype('m8[s]').astype(np.int64)
marathon_2017['15K'] = marathon_2017['15K'].astype('m8[s]').astype(np.int64)
marathon_2017['20K'] = marathon_2017['20K'].astype('m8[s]').astype(np.int64)
marathon_2017['25K'] = marathon_2017['25K'].astype('m8[s]').astype(np.int64)
marathon_2017['30K'] = marathon_2017['30K'].astype('m8[s]').astype(np.int64)
marathon_2017['35K'] = marathon_2017['35K'].astype('m8[s]').astype(np.int64)
marathon_2017['40K'] = marathon_2017['40K'].astype('m8[s]').astype(np.int64)

# Define function name to_seconds
check_time = 7200
Lat = 0
Long = 0
Location = ''
points = [[42.247835,-71.474357], [42.274032,-71.423979], [42.282364,-71.364801], [42.297870,-71.284260],
          [42.324830,-71.259660], [42.345680,-71.215169], [42.352089,-71.124947], [42.351510,-71.086980]]

marathon_location = pd.DataFrame(columns=['Lat','Long'])
for index, record in marathon_2017.iterrows():
    if (record['40K'] < check_time):
        Lat = points[7][0]
        Long = points[7][1]
    elif (record['35K'] < check_time):
        Lat = points[6][0]
        Long = points[6][1]
    elif (record['30K'] < check_time):
        Lat = points[5][0]
        Long = points[5][1]
    elif (record['25K'] < check_time):
        Lat = points[4][0]
        Long = points[4][1]
    elif (record['20K'] < check_time):
        Lat = points[3][0]
        Long = points[3][1]
    elif (record['15K'] < check_time):
        Lat = points[2][0]
        Long = points[2][1]
    elif (record['10K'] < check_time):
        Lat = points[1][0]
        Long = points[1][1]
    elif (record['5K'] < check_time):
        Lat = points[0][0]
        Long = points[0][1]
    else:
        Lat = points[0][0]
        Long = points[0][1]
    marathon_location = marathon_location.append({'Lat' : Lat,
                                        'Long' : Long},
                                        ignore_index=True)

marathon_count = marathon_location.groupby(['Lat', 'Long']).size().reset_index(name='Count')

# Import pyplot as a alias 'plt'
import matplotlib.pyplot as plt

# Configure figure size
plt.figure(figsize=(30,10))
plt.scatter(marathon_count.Lat, marathon_count.Long, s=marathon_count.Count, alpha=0.5)

for i, txt in enumerate(marathon_count.Count):
    plt.annotate(txt, (marathon_count.Lat[i], marathon_count.Long[i]), fontsize=18)

# Add a title
plt.title("Runners location at 2nd hours")
# Add x-axis label
plt.xlabel("Latitude")
# Add y-axis label
plt.ylabel("Longitude")

plt.show()

# Import folium for Geo Map
import folium
from folium.plugins import HeatMap

# Create basic Folium marathon map
marathon_map = folium.Map(location=[42.324830,-71.259660],
                       tiles = "Stamen Toner",
                       zoom_start = 11)
HeatMap(marathon_count, radius=20).add_to(marathon_map)

# Plot!
marathon_map

0

안녕하세요?

혹시 설치 후, 터미널을 종료 후 새로 터미널에서 주피터 노트북을 실행하셨나요?

이래도 안될 경우에는  일단 두 가지 방법을 시도해보는 것이 좋겠습니다.

1.  'pip install folium'명령을 사용해서 다시 설치하는 방법 또는,

2. 'conda init'명령을 실행해서 초기화하고 꼭 터미널을 종료하고 새로 오픈해서 다시 시도해 보세요.  

문제가 해결되길 바라고 강의에서 좋은 내용 배우시길 바랍니다.

감사합니다.