我正在尝试在Debian Stable Linux上运行以下简单脚本:
$ cat ./mytest.py
#! /usr/bin/python3
print("Before importing sys.")
import sys
print("Before importing pandas.")
import pandas as pd
print("Before importing numpy.")
import numpy as np
但是它给出了以下错误:
$ ./mytest.py
Before importing sys.
Before importing pandas.
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=22, tm_hour=22, tm_min=43, tm_sec=50, tm_wday=2, tm_yday=326, tm_isdst=0)
Date=22
Month=11
Year=2017
Hour=22
Minute=43
Second=50
Local current time : Wed Nov 22 22:43:50 2017
Traceback (most recent call last):
File "./mytest.py", line 7, in <module>
import pandas as pd
File "/usr/lib/python3/dist-packages/pandas/__init__.py", line 13, in <module>
__import__(dependency)
File "/home/iuser/.local/lib/python3.5/site-packages/numpy/__init__.py", line 142, in <module>
from . import add_newdocs
File "/home/iuser/.local/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/home/iuser/.local/lib/python3.5/site-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/home/iuser/.local/lib/python3.5/site-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/home/iuser/.local/lib/python3.5/site-packages/numpy/core/__init__.py", line 16, in <module>
from . import multiarray
SystemError: initialization of multiarray raised unreported exception
通过Debian存储库安装以下版本的pandas和numpy:
Package Installed Previous Now State
=======================-===============-===============-===============-=====
python3-pandas 0.19.2-5.1 0.19.2-5.1 0.19.2-5.1 install
python3-pandas-lib 0.19.2-5.1 0.19.2-5.1 0.19.2-5.1 install
python-numpy 1:1.12.1-3 1:1.12.1-3 1:1.12.1-3 install
python3-numpy 1:1.12.1-3 1:1.12.1-3 1:1.12.1-3 install
问题出在哪里?如何解决?
编辑:我发现上面相同的文件在另一个文件夹中完美运行!我使用正确的文件名命令。
$ ./mytest.py
Before importing sys.
Before importing pandas.
Before importing numpy.
第一个文件夹中还有其他文件和子文件夹。其中一个是__pycache__
,其中包含以下文件:
$ ls
datetime.cpython-35.pyc myfns.cpython-35.pyc myframe.cpython-35.pyc
我的datetime.py文件包含以下内容:
import time
tt = time.localtime()
print(tt)
print("Date="+str(tt.tm_mday))
print("Month="+str(tt.tm_mon))
print("Year="+str(tt.tm_year))
print("Hour="+str(tt.tm_hour))
print("Minute="+str(tt.tm_min))
print("Second="+str(tt.tm_sec))
localtime = time.asctime( time.localtime() ) # <<<<<<<<<<<<<<<<<< same as complex above;
print ("Local current time :", localtime)
这些可能会干扰吗?
答案 0 :(得分:1)
我不确定Pandas 0.19.2
是否与Numpy 1.12.1
兼容。
我认为解决此问题的最简单方法是install Anaconda Python distributive into a separate directory (not touching system Python)并创建VirtualEnv(s)。
Anaconda负责所有提供模块的兼容性。
答案 1 :(得分:0)
由于脚本在其他文件夹中运行良好,因此问题仅出现在此文件夹中。此文件夹中有一个名为datetime.py
的文件,删除该文件解决了问题。显然,pandas
查找名为datetime.py
的文件并首先搜索当前文件夹,在该文件夹中找到具有相同名称的此用户文件。因此问题。
故事的道德:不应该为用户文件提供软件包可能使用的通用名称。