在anaconda环境中安装scipy时出现一个奇怪的错误。具体来说,我将环境设置为使用Python 2.7.12,并安装了许多其他软件包(据我测试,看起来还不错)。但是我在使用scipy时遇到了一个特定的问题,即当我键入“ pip install scipy”或其他任何变体(在激活我的环境时)时,似乎安装的软件包的版本不完整。
例如,我输入<dependencies>
<!-- ... -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/annotations</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
,打开Python,然后运行
pip install -Iv scipy==0.17.0
其输出为
>>> import scipy
>>> module = type(scipy)
>>> print [x for x in dir(scipy) if type(getattr(scipy, x)) == module]
现在,如果我在非anaconda python环境上运行相同的代码,则会得到以下输出
['__config__', '_lib', 'add_newdocs', 'char', 'ctypeslib', 'emath', 'ma', 'math', 'random', 'rec', 'version']
很显然,我缺少['__config__', '_lib', 'add_newdocs', 'char', 'ctypeslib', 'emath', 'integrate', 'linalg', 'ma', 'math', 'misc', 'ndimage', 'random', 'rec', 'sparse', 'special', 'version']
,scipy.integrate
,scipy.linalg
,scipy.misc
,scipy.ndimage
和scipy.sparse
。请注意,scipy.special
在两个环境中都是相同的,scipy.__version__
。
为什么会这样?为什么我在Anaconda环境中缺少scipy子模块?