파이썬 : datetime이라는 모듈이 없습니까?


56

운영체제 : Ubuntu 14.04 LTS

파이썬 : 2.7.6

Gourmet Recipe Manager 설치가 갑자기 로딩을 중단했습니다. 터미널 창에서 실행하면 역 추적 끝에 다음이 표시됩니다.

import datetime as dt
ImportError: No module named datetime

내가 알 수있는 한 아무것도 변경되지 않았으며 Python 설치가 최신 상태입니다. 어제 일을 그만 두었습니다. 이 문제를 진단하고 해결하는 좋은 접근 방식에 감사드립니다.

업데이트 : 답변 해 주신 모든 분들께 감사드립니다!

팀, 내가이 질문을 잘못된 곳에 물었다면 유감입니다. 우분투 웹 사이트의 링크를 따라 가면 새로운 사람이 될 수 있습니다.

TheSchwa, 나는 당신의 제안을 시도하고 위와 같은 오류 메시지를 받았습니다.

muru, 패키지가 설치된 것 같지만 패키지가 올바르게 설치 / 구성되었는지는 알 수 없습니다. 어떻게 알 수 있습니까?

모든 질문에 대해 유감스럽게 생각하지만, 한동안 Linux를 사용하지 않은 오래된 RedHat 사람입니다. 모든 apt / dpkg 물건은 나에게 새로운 것입니다.


여기에 주제가 있지만 Stack Overflow 에 대한 더 나은 응답을 얻을 수 있습니다 . 또한 나는 그것을 재생할 수 없습니다. 당신과 같은 설정에서 전혀 오류가 없습니다 ...
Tim

import datetime파이썬 인터프리터에서 시도하면 어떻게됩니까 ? 터미널을 열고를 실행하여 인터프리터를 시작할 수 있습니다 python. 로 남겨 둘 수 있습니다 Ctrl+d.
TheSchwa

에 따르면 dpkg -S $(python -c "import datetime; print datetime.__file__"), datetime 모듈은 libpython2.7-stdlib패키지 에서 온 것 입니다. 해당 패키지가 올바르게 설치 되었습니까? 다시 설치할 수 있습니까?
muru

좋아, 그래서 특정 파일이 /usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so그 파일을 가지고 있습니까? 또한 /usr/lib/python2.7/lib-dynload의 출력에 나열되어 echo $(python -c "import sys; print sys.path")있습니까? Btw Stack Exchange 시스템은 게시물을 편집 할 때 실제로 주석 작성자에게 알리지 않습니다. 우리가 :) 다시 확인하기 위해 우리에게 말하고 알림을받을 수 있도록 그래서 적어도 항상 같은 "는 정보와 업데이트 문제"로 빠른 코멘트를 작성
TheSchwa

정보가 포함 된 질문을 업데이트했습니다. 감사합니다. TheSchwa! 내 대답은 각각 아니요와 그렇습니다. 이제 datetime.x86_64-linux.gnu.so의 새 사본을 어디서 구할 수 있습니까? :)
Joe

답변:


84

이것은 14.10 업데이트 이후에 나에게 일어 났으며 가상 환경 /usr/bin/python2.7에 새 바이너리와 달리 오래된 사본이 datetime내장 되어 있지 않으므로 디스크에서 찾을 수 없을 때 오류가 발생하기 때문입니다. . 새로운 인터프리터는 파일 I / O없이 가져 오는 것 같습니다 ( strace확인하기 위해 실행 하십시오).

각 가상 환경을 활성화하고 실행하여 수정했습니다.

$ cp /usr/bin/python2.7 $(which python2.7)

5
고맙지 만 왜 이것이 필요한가요? 업그레이드에서 파이썬을 깨는 것은 불쾌한 일입니다.
사만다 앳킨스

1
이 페이지에서 다른 답변을 시도했지만 작동하지 않았지만이 답변은 작동했습니다.
Michael Terry

2
있어 cp: '/usr/bin/python2.7' and '/usr/bin/python2.7' are the same file하지만 오류가 여전히 존재
UMAIR

@Umair이 activate경우 스크립트에 문제가있을 수 있습니다. 일반적으로 활성화 후에 which python2.7는 환경 Python의 경로가 표시되고 시스템 Python의 경로는 반환되지 않습니다.
Brandon Rhodes

29

다음과 같이 virtualenv를 다시 초기화 할 수 있습니다.

cd $VIRTUAL_ENV
virtualenv .

2
그것이 있어야합니다 virtualenv .대신virtualenv ,
icyrock.com

4
이 대답은 Brandon Rhodes의 것보다 낫습니다.
azurkin

하나가 virtualenvwrapper를 사용하면 가능 cd $VIRTUAL_ENV합니다.
maciek

OSError: [Errno 1] Operation not permitted
Cerin

@ Cerin, 나는 같은 문제가 있었는데 방금 a sudo virtualenv .를 사용하여 새로운 Python 실행 파일을 설치 한 다음 전체 $VIRTUAL_ENV를 올바른 디렉토리 소유자 로 다시 변경했습니다 .
iMitwe

29

업그레이드 후 letsencrypt를 사용하려고하면이 솔루션이 나를 위해 작동했습니다 .

방금 이것을 삭제해야했습니다.

rm ~/.local/share/letsencrypt -R

8
나는 또한에 있었다 rm -rf /opt/eff.org그것이 작동되도록하는
CharlyDelta

7
/opt/eff.org를 제거하면 해결되었습니다
Margus Pala

1
저도 마찬가지입니다 ... /opt/eff.org
cljk

2

나는 같은 문제가 있었고 마침내 자체 파이썬 디렉토리가 있음을 알았 기 때문에 AWS CLI 여야한다고 결정했습니다. 그래서 AWS CLI를 제거했다가 다시 설치하여 문제를 해결했습니다.

sudo pip uninstall awscli

sudo pip install awscli


0

14.04에서 일부 변경 사항을 발견 했으므로 루트 에서이 작업을 수행해야합니다.

날짜 / 시간 만 해당 :


ln -s /usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/datetime.so

모든 모듈 :


ln -s /usr/lib/python2.7/lib-dynload/audioop.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/audioop.so
ln -s /usr/lib/python2.7/lib-dynload/_bsddb.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/_bsddb.so
ln -s /usr/lib/python2.7/lib-dynload/bz2.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/bz2.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_cn.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_cn.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_hk.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_hk.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_iso2022.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/_codecs_iso2022.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_jp.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_jp.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_kr.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_kr.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_tw.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_tw.so
ln -s /usr/lib/python2.7/lib-dynload/crypt.x86_64-linux-gnu.so                         /usr/lib/python2.7/lib-dynload/crypt.so
ln -s /usr/lib/python2.7/lib-dynload/_csv.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/_csv.so
ln -s /usr/lib/python2.7/lib-dynload/_ctypes_test.x86_64-linux-gnu.so                  /usr/lib/python2.7/lib-dynload/_ctypes_test.so
ln -s /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_ctypes.so
ln -s /usr/lib/python2.7/lib-dynload/_curses_panel.x86_64-linux-gnu.so                 /usr/lib/python2.7/lib-dynload/_curses_panel.so
ln -s /usr/lib/python2.7/lib-dynload/_curses.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_curses.so
ln -s /usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/datetime.so
ln -s /usr/lib/python2.7/lib-dynload/dbm.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/dbm.so
ln -s /usr/lib/python2.7/lib-dynload/_elementtree.x86_64-linux-gnu.so                  /usr/lib/python2.7/lib-dynload/_elementtree.so
ln -s /usr/lib/python2.7/lib-dynload/fpectl.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/fpectl.so
ln -s /usr/lib/python2.7/lib-dynload/future_builtins.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/future_builtins.so
ln -s /usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_hashlib.so
ln -s /usr/lib/python2.7/lib-dynload/_hotshot.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_hotshot.so
ln -s /usr/lib/python2.7/lib-dynload/_json.x86_64-linux-gnu.so                         /usr/lib/python2.7/lib-dynload/_json.so
ln -s /usr/lib/python2.7/lib-dynload/linuxaudiodev.x86_64-linux-gnu.so                 /usr/lib/python2.7/lib-dynload/linuxaudiodev.so
ln -s /usr/lib/python2.7/lib-dynload/_lsprof.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_lsprof.so
ln -s /usr/lib/python2.7/lib-dynload/mmap.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/mmap.so
ln -s /usr/lib/python2.7/lib-dynload/_multibytecodec.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/_multibytecodec.so
ln -s /usr/lib/python2.7/lib-dynload/_multiprocessing.x86_64-linux-gnu.so              /usr/lib/python2.7/lib-dynload/_multiprocessing.so
ln -s /usr/lib/python2.7/lib-dynload/nis.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/nis.so
ln -s /usr/lib/python2.7/lib-dynload/ossaudiodev.x86_64-linux-gnu.so                   /usr/lib/python2.7/lib-dynload/ossaudiodev.so
ln -s /usr/lib/python2.7/lib-dynload/parser.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/parser.so
ln -s /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/pyexpat.so
ln -s /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/readline.so
ln -s /usr/lib/python2.7/lib-dynload/resource.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/resource.so
ln -s /usr/lib/python2.7/lib-dynload/_sqlite3.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_sqlite3.so
ln -s /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/_ssl.so
ln -s /usr/lib/python2.7/lib-dynload/termios.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/termios.so
ln -s /usr/lib/python2.7/lib-dynload/_testcapi.x86_64-linux-gnu.so                     /usr/lib/python2.7/lib-dynload/_testcapi.so

또한 가상 환경 복사를 사용하는 경우

cp $(which python2.7) /opt/graphite/bin/python

당신의 env.


3
14.04로 업그레이드했으며 symlink를 수행 할 필요가 없었습니다. 이와 같은 시스템 라이브러리를 엉망으로 만드는 것이 필요하며 피할 수 없다는 증거가 있습니까?
Andrea Lazzarotto

0

Ubuntu 14.04에서 14.10으로 업그레이드 할 때 오류가 발생했습니다. 나는 virtualenv를 다시 만들었고 문제는 사라졌습니다. 따라서 virtualenv로 작업하는 경우 다시 작성해야합니다.

그러나 그렇지 않으면 프로젝트를 다시 설치할 수 있다고 생각합니다. 시스템 라이브러리를 만지지 마십시오! 그것은 당분간 작동 할 수 있지만 잠재적으로 다른 사람들과 문제를 일으킬 것입니다.


0

이것은 우분투 업그레이드 후에 발생합니다. 내가 가장 좋아하는 솔루션은

$ virtualenv --no-site-packages path/to/virtualenv/dir

이것은 이미 설치된 패키지를 제거하지 않고 필요한 모든 것을 업데이트합니다.

업데이트 할 virtualenvs가 많은 경우 다음을 사용할 수 있습니다 xargs.

$ ls ~/directory/with/virtualenvs | xargs -L1 virtualenv --no-site-packages
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.