相关疑难解决方法(0)

在IPython中重新加载子模块

目前我正在开发一个包含子模块并使用numpy/scipy的python项目.Ipython用作交互式控制台.不幸的是,我对我现在使用的工作流程不是很满意,我将不胜感激.

在IPython中,框架由一个简单的import命令加载.但是,通常需要更改框架的一个子模块中的代码.此时已经加载了一个模型,我使用IPython与它进行交互.

现在,框架包含许多相互依赖的模块,即在最初加载框架时,主模块正在导入和配置子模块.只有在使用重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod).这很麻烦,因为我需要使用完整路径单独重新加载所有已更改的模块.如果reload(main_module)还要重新加载所有子模块,但没有重新加载numpy/scipy 将是非常方便的..

python ipython

329
推荐指数
7
解决办法
12万
查看次数

如何根据名称查找类的所有子类?

我需要一种工作方法来获取从Python中的基类继承的所有类.

python subclass

194
推荐指数
6
解决办法
8万
查看次数

Python AttributeError:'module'对象没有属性'Serial'

我正在尝试使用运行Debian的Raspberry Pi上的Python 2.6访问串口.我的脚本命名serial.py尝试导入pySerial:

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它拒绝与此错误建立串行连接:

AttributeError: 'module' object has no attribute 'Serial'
Run Code Online (Sandbox Code Playgroud)

当我尝试在交互式Python解释器中键入相同的代码时,它仍然无法正常工作.

奇怪的是,它曾经在几个小时前工作.

可能是什么问题呢?我试图修复一段时间,再次安装pySerial,重写我的代码,仔细检查串口等.

提前致谢!

python serial-port raspberry-pi

112
推荐指数
5
解决办法
33万
查看次数

获取Python可以编码的所有编码列表

我正在编写一个脚本,尝试在Python 2.6中将字节编码为许多不同的编码.有没有办法获得可以迭代的可用编码列表?

我试图这样做的原因是因为用户有一些未正确编码的文本.有趣的人物.我知道unicode角色搞砸了.我希望能够给他们一个答案,例如"你的文本编辑器将该字符串解释为X编码,而不是Y编码".我以为我会尝试使用一种编码对该字符进行编码,然后使用另一种编码再次对其进行解码,看看我们是否得到相同的字符序列.

即是这样的:

for encoding1, encoding2 in itertools.permutation(encodinglist(), 2):
  try:
    unicode_string = my_unicode_character.encode(encoding1).decode(encoding2)
  except:
    pass
Run Code Online (Sandbox Code Playgroud)

python unicode encoding character-encoding

60
推荐指数
6
解决办法
4万
查看次数

__path__对什么有用?

我从来没有注意到__path__今天之前在我的某些软件包上定义的属性.根据文件:

包支持另一个特殊属性__path__.这被初始化为一个列表,其中包含在__init__.py执行该文件中的代码之前保存包的目录的名称.这个变量可以修改; 这样做会影响将来对包中包含的模块和子包的搜索.

虽然通常不需要此功能,但它可用于扩展程序包中的模块集.

有人可以向我解释这究竟是什么意思以及为什么我会想要使用它?

python module path

53
推荐指数
4
解决办法
2万
查看次数

列出 python 模块的子模块

如何获取已导入的 Python 模块的所有子模块的名称/列表?(不是外部导入的模块/包,只是与模块子文件夹位于同一文件夹中的那个)。

我在用

import inspect
print([o[0] for o in inspect.getmembers(module_imported) if inspect.ismodule(o[1])])
Run Code Online (Sandbox Code Playgroud)

但这也会打印导入的系统模块和主模块文件夹中的文件。

python module

16
推荐指数
4
解决办法
1万
查看次数

How can I list all packages/modules available to Python from within a Python script?

I have looked around and do not see a solution for this. What I would like to do is get a list of all packages available in Python at run-time.

I looked at these:

But they are not what I am looking for.

I attempted to do this:

import pkgutil
for pkg in pkgutil.walk_packages():
    print(pkg)  # or …
Run Code Online (Sandbox Code Playgroud)

python package

9
推荐指数
1
解决办法
4231
查看次数

导入numpy和Scipy包的模块/子包的差异

我通过Anaconda 2.1.0发行版使用scipy和numpy.我使用Spyder作为我的Python IDE.

当我运行时 import scipy as sp,我无法访问子包,例如optimize,linalg,cluster等sp.

但是,当我运行时import numpy as np,我能够访问其所有子包,例如linalg,random,matrixlib,polynomial,testing等np.

这两种进口是否有不同的原因?为什么不import scipy as sp抓住所有scipy子包进入sp命名空间?

python import numpy scipy

7
推荐指数
1
解决办法
1374
查看次数

我将光栅捆绑到可执行文件中的方式有​​问题

预期行为和实际行为。

我希望rasterio使用pyinstaller. 该脚本在我的 python 环境中运行良好。但是我无法使用PyInstaller.

重现问题的步骤。

我有一个名为的脚本workflow_3.py,其中包含以下内容:

import rasterio

就是这样。我尝试编译然后使用 pyinstaller 运行它,如下所示:

(wps_env36) D:\11202750-002_RA2CE\Basis>pyinstaller workflow_3.py (wps_env36) D:\11202750-002_RA2CE\Basis>dist\workflow_3\workflow_3.exe

编译似乎运行完成,但是当我运行可执行文件时,出现以下错误:

(wps_env36) D:\11202750-002_RA2CE\Basis>dist\workflow_3\workflow_3.exe
Traceback (most recent call last):
  File "workflow_3.py", line 1, in <module>
    import rasterio
  File "c:\programdata\anaconda2\envs\wps_env36\lib\site-packages\PyInstaller\loader\pyimod03_i
mporters.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\rasterio\__init__.py", line 23, in <module>
  File "rasterio\_base.pyx", line 1, in init rasterio._base
ModuleNotFoundError: No module named 'rasterio._shim'
[17536] Failed to execute script workflow_3
Run Code Online (Sandbox Code Playgroud)

尝试解决问题

我通过显式添加'rasterio._shim'hidden-imports变量包含的列表来修改规范文件。然后我跑了 …

python pyinstaller rasterio

5
推荐指数
1
解决办法
2877
查看次数