我试图将 xarray 模块导入 python 3.8.10 但出现此错误:
AttributeError: module 'numpy.random' has no attribute 'BitGenerator'
为了让您重现错误:首先,我使用 conda 创建了一个新环境,并同时导入了我需要的模块(以避免依赖项不兼容的问题):
conda create -n Myenv Python=3.8 matplotlib numpy time xarray netCDF4 termcolor
然后,我尝试在 ipython3 中导入运行代码所需的所有模块:
import matplotlib as mpl
mpl.use('agg')
import numpy as np
import os
import time
import glob
import sys
from datetime import datetime,date,timedelta
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import matplotlib.colors as colors
# from operator import itemgetter
from netCDF4 import Dataset
from mpl_toolkits.basemap import Basemap, shiftgrid
from termcolor import …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Python,我想使用外部RSS类.我在哪里放这个课程,如何导入它?我想最终能够分享python程序.
我正在创建一个django驱动(1.3)接口的过程,该接口主要依赖于scipy.stats.stats(scipy版本0.9.0)ovl.在早期开发阶段,使用djangos自己的开发服务器,这没有问题.在使用apache debian/2.2.9和mod_wsgi 3.3进行部署之后,这会导致严重的问题.
无论我想在浏览器中加载什么视图,它都会开始加载,并持续5分钟(直到超时),并显示500页.只是导入scipy作品,但不会使scipy.stats.stats甚至scipy.stats可用.这并不奇怪; 在scipy的init .py 文档中,声明stats需要明确导入子包.然而,关于subpackage也是如此cluster,它在django中导入(来自web 和 django-shell)没有任何问题,并且确实显示出来dir(scipy),它在ipython(0.10.2)中没有,它只是没有出现,就像我预期的那样.
在命令dir(scipy); 当它从clusterdjango shell中的普通ipython shell(564字符串,没有子包cluster)和惊喜,惊喜时,从web(包含568字符串的列表,包括子包)中返回不同的结果.在django shell中,scipy有570个属性,包括两者cluster和stats包.
另一件事是,如果我继续导入ovl-package,同时保持scipy.stats导入一点距离(不是在应用程序本身的一个文件中),有时我得到一个ViewDoesNotExist错误,说明没有方法视图模块中的索引虽然显然有一个.这让我想起了这个.
所以现在我想到了这些相当丑陋的解决方案:
但是,我不愿意应用这些解决方案.在django环境中scipy出现的事实群集让我有点担心.我想也许这与从网上登录时成为www-data用户有关,但我不知道如何检查.
有没有人遇到过这个?部分内容?或者其他有用的想法?
哦,另一个django部署确实有效.
我想在一个源文件QT.py中做类似的事情:
import sys
import PyQt4
sys.modules["Qt"] = PyQt4
Run Code Online (Sandbox Code Playgroud)
然后在其他源文件中导入此文件,并像这样使用它:
import QT
from Qt.QtCore import *
Run Code Online (Sandbox Code Playgroud)
所以我可以在QT.py中从PyQt4更改为PySide而不触及所有源文件(可能有丑陋的sed脚本)这些模块主要是API兼容,我想测试它们.是否有捷径可寻?(因为我尝试的方式不起作用)
也许我需要imp模块,但它看起来太低了.
我试图了解实现Python的ConfigParser的最佳方法,以便多个程序模块都可以访问元素。我正在使用:-
import ConfigParser
import os.path
config = ConfigParser.RawConfigParser()
config.add_section('paths')
homedir = os.path.expanduser('~')
config.set('paths', 'user', os.path.join(homedir, 'users'))
[snip]
config.read(configfile)
Run Code Online (Sandbox Code Playgroud)
在最后一行引用了configfile变量。这必须传递到Config模块,以便用户可以覆盖默认配置文件。我应该如何以其他模块可以使用config.get(spam,eggs)的方式在模块/类中实现此功能?
我有一个非常简单的包,我最终想通过PyPI发布,它有一个如下所示的目录树:
daterangeparser/
__init__.py
parse_date_range.py
test.py
Run Code Online (Sandbox Code Playgroud)
parse_date_range.py定义一个名为的函数parse.
对于我来说,设置软件包以便于导入parse函数的最简单,最pythonic的方法是什么,我该怎么办?
目前我必须这样做from daterangeparser.parse_date_range import parse,这似乎相当笨重.我宁愿做from daterangeparser import parse,这似乎更简单,更pythonic,但我似乎无法弄清楚如何使这个工作(我需要把其他东西__init__.py?或者,有没有更好的方法来做到这一点?
鉴于我对Python的了解,我遇到的问题不应该发生。我在Mac OS X Snow Leopard上使用pip安装了virtualenvwrapper。在/Library/Python/2.6/site-packages中。但是当我尝试导入virtualenvwrapper时,Python告诉我没有使用该名称的模块。其他模块(例如virtualenv)的加载也很好,/ Library / Python / 2.6 / site-packages恰好在我的Python路径的顶部。那么,关于virtualenvwrapper有什么奇怪的地方,以便Python找不到它吗?
是否有任何等效的会话管理模块,如Perl的CGI :: Session或Apache :: Session?(我知道大多数python web框架都有自己的实现,但我正在寻找一个可以与任何python应用程序一起使用的独立模块.)
我试图安装一个名为python-phonenumbers的python模块,我收到了这个错误
sudo pip install git + git://github.com/daviddrysdale/python-phonenumbers.git
清理...命令/ usr/bin/python -c"import setuptools; file ='/ tmp/pip-YQ6XJC-build/setup.py'; exec(compile(open(file).read().replace( '\ r \n','\n'),file,'exec'))"install --record /tmp/pip-s3GdMz-record/install-record.txt --single-version-external-managed failed with/tmp/pip -YQ6XJC-build中的错误代码-9存储完整的日志/home/ubuntu/.pip/pip.log
我在这里附上了完整的日志 http://paste2.org/WZzCdz7Y
更新
我错误地把以下行
sudo pip install git://github.com/daviddrysdale/python-phonenumbers.git
Run Code Online (Sandbox Code Playgroud)
代替
sudo pip install git+git://github.com/daviddrysdale/python-phonenumbers.git
Run Code Online (Sandbox Code Playgroud) 我的软件包具有以下结构:
myPackage
-- __init__.py <-- empty
-- signal.py
-- plot.py
Run Code Online (Sandbox Code Playgroud)
signal.py包含:
from plot import plot_signal
def build_filter():
...
def other_function():
plot_signal()
Run Code Online (Sandbox Code Playgroud)
plot.py包含:
from signal import build_filter
def plot_signal():
...
def other_function():
build_filter()
Run Code Online (Sandbox Code Playgroud)
然后,我就有了使用此程序包的脚本,该程序包包含以下内容:
import myPackage as mp
mp.plot.plot_signal()
Run Code Online (Sandbox Code Playgroud)
运行此命令时,出现属性错误: module 'myPackage' has no attribute 'plot'
我不确定为什么将其plot作为包中的模块时将其称为属性,还是将其myPackage称为模块。
然后,我尝试导入我的包并以其他方式调用该函数:
from myPackage import plot, signal
plot.plot_signal()
Run Code Online (Sandbox Code Playgroud)
但是,现在我收到一个导入错误:cannot import name 'build_filter'追溯是指plot.py它试图build_filter()从同级模块导入函数的位置。
我认为这与以下事实有关:两个模块彼此使用函数,并递归地导入另一个模块。
组织此程序包以使同级模块可以相互导入功能的正确方法是什么?
python-module ×10
python ×9
django ×2
configparser ×1
module ×1
numpy ×1
package ×1
pip ×1
pyqt ×1
pyside ×1
python-2.7 ×1
python-3.x ×1
scipy ×1
statistics ×1
virtualenv ×1