标签: python-module

在Python中中止执行模块

我想停止评估正在导入的模块,而不停止整个程序.

这是我想要实现的一个例子:

main.py

print('main1')
import testmodule
print('main2')
Run Code Online (Sandbox Code Playgroud)

testmodule.py

print(' module1')
some_condition=True
if some_condition:
  exit_from_module()  # How to do this?
print(' module2')     # This line is not executed.
Run Code Online (Sandbox Code Playgroud)

预期产量:

main1
 module1
main2
Run Code Online (Sandbox Code Playgroud)

python python-module python-3.x

8
推荐指数
2
解决办法
5962
查看次数

Python模块:当一个人导入它们时,它们会进入内存吗?

我只是完成这个练习创建和Python中导入模块初学者.

我想知道模块中的所有内容是否都被导入到计算机的内存中?

随着代码变得越来越长并且导入的模块变得越来越多,以后会对内存产生影响吗?

我是否需要知道内存管理才能编写资源高效的代码?

python python-module

8
推荐指数
1
解决办法
3369
查看次数

Python 2.7.2的pyserial

我是Python的新手.根据互联网,我在收到此错误后正在寻找模块pyserial:

ImportError: No module named serial
Run Code Online (Sandbox Code Playgroud)

我第一次尝试安装pywin32,它进展顺利.但它似乎不包含pyserial.:-(

然后我找到了pyserial的单个模块安装程序,我无法安装它,它说它没有在注册表中找到python的路径.:-(

之后我在python.org上找到了这个模块,但我不知道该怎么做,它没有安装程序.:-(

如何在Windows 7 64上将pyserial添加到Python(64)2.7 ?

python python-module pyserial windows64

8
推荐指数
2
解决办法
9万
查看次数

从不同子文件夹的子文件夹中相对导入python模块

我正在尝试使用alembic,它是python中的sqlalchemy工具.您键入一个命令,它会生成一个文件夹"alembic",里面有py文件.里面的py文件,需要在一个名为"myapp"的单独文件夹中链接到我的应用程序.但我不能把它联系起来.它说它不存在,相对导入不起作用.

所以我需要从myapp/configs/config.py文件导入我的配置类.

/apps
+--/alembic
|----env.py <--- the calling file
+--/myapp
|----configs/__init__.py <--- has "DefaultConfig" class imported
|----configs/config.py <--- I want to import the class inside here.
Run Code Online (Sandbox Code Playgroud)

在env.py里面:

from myapp.configs import DefaultConfig
Run Code Online (Sandbox Code Playgroud)

不行.

我试过了:

from ..myapp.configs import DefaultConfig
Run Code Online (Sandbox Code Playgroud)

没有成功.

alembic docs中的示例代码说只使用"myapp.whatever".

我甚至在环境变量中将我的"/ apps"和"/ myapp"添加到PYTHON_PATH.

示例错误:

File "D:\apps\myapp\lib\site-packages\alembic\command.p
y", line 97, in revision
    script.run_env()
  File "D:\apps\myapp\lib\site-packages\alembic\script.py
", line 191, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "D:\apps\myapp\lib\site-packages\alembic\util.py",
 line 186, in load_python_file
    module = imp.load_source(module_id, path, open(path, 'rb'))
  File "alembic\env.py", line 5, in …
Run Code Online (Sandbox Code Playgroud)

python import python-module alembic

8
推荐指数
1
解决办法
4702
查看次数

Python导入模块,文件夹结构

我一直在寻找解决这个问题的方法.

我有一个python项目,这是我想要的文件夹结构:

/project/main.py
/project/src/models.py
/project/test/tests.py
Run Code Online (Sandbox Code Playgroud)

我希望能够通过在终端中执行tests.py来运行测试.tests.py导入/ project/src /中的模块进行测试.首先,我通过添加sys.path.insert(0, '..')tests.py 来解决这个问题 .但是,在models.py中用于打开文本文件的路径必须是相对于tests.py等的.这意味着程序在从main.py,路径的原因处理时不会运行.

在将模块导入tests.py之类的时候,我也尝试使用from ..src.models import *,但是这给出了错误消息,说"尝试在非包中导入相对导入".

我应该在tests.py的顶部放置什么才能从models.py导入模块?

python python-module path relative-path

8
推荐指数
1
解决办法
5896
查看次数

Python cx_Freeze名称__file__未定义

我有一个python脚本,它从互联网上获取图像,下载它,设置为桌面背景并在一分钟后更新.问题很可能是cx_Freeze不包括os模块,因为具有绝对路径的相同代码工作正常.我的代码也很完美,直到它冻结.它在我通过控制台加载,从IDLE运行或双击它之前冻结.每当我运行冻结文件时,我都会收到错误(如果我使用setup.py或cxfreeze file.py:

C:\Python33\Scripts>C:\Python33\Scripts\dist\desktopchanger.exe
Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
7, in <module>
    exec(code, m.__dict__)
  File "C:\Python33\desktopchanger.pyw", line 7, in <module>
    dir = path.dirname(__file__)
NameError: name '__file__' is not defined
Run Code Online (Sandbox Code Playgroud)

我的守则

import pythoncom
from urllib import request
from win32com.shell import shell, shellcon
from time import sleep
from os import path

dir = path.dirname(__file__) #get dierctory script is in
startpath = str(path.join(dir+'/bg/bg.jpg')) #add /bg/bg.jpg to path of script

pathtoimg=[]
for char in startpath:
    if char != "/": …
Run Code Online (Sandbox Code Playgroud)

python python-module setup.py cx-freeze self-reference

8
推荐指数
1
解决办法
6032
查看次数

python脚本上的Python pdb作为包运行

我有一个python程序,我通常作为一个包的一部分运行:

python -m mymod.client
Run Code Online (Sandbox Code Playgroud)

为了处理"mymod/client.py"中的相对导入.我如何使用pdb运行它 - python调试器.以下不起作用:

python -m pdb mymod.client
Run Code Online (Sandbox Code Playgroud)

它产生错误:

Error: mymod.client does not exist
Run Code Online (Sandbox Code Playgroud)

编辑#1(以解决可能存在的两面性问题)

我的问题不是关于同时运行python的两个模块,而是关于如何在python脚本中使用pdb,该脚本中包含相对导入,并且通常通过使用"python -m"运行脚本来处理.

重申,我的问题可能是,如何在这样的脚本上使用pdb而不必更改脚本本身只是为了让它与pdb一起运行(即:尽可能保留脚本内的相对导入).不应该这样,或者如果我想使用pdb,我是否被迫以某种方式重构?如果是这样的话,我必须引入的脚本结构的最小变化是什么,以允许我利用pdb.

总而言之,我并不关心我如何运行脚本,只要我可以使用pdb而不改变它的内部结构(相对导入等)太多.

python python-module pdb

8
推荐指数
1
解决办法
425
查看次数

我如何使用importlib.LazyLoader?

在我的模块中,我有几个依赖于具有较长启动时间的外部模块的功能.我该怎么用LazyLoader?如果我有

import veggies
Run Code Online (Sandbox Code Playgroud)

要么

import veggies.brussels.sprouts
Run Code Online (Sandbox Code Playgroud)

要么

from veggies.brussels import sprouts
Run Code Online (Sandbox Code Playgroud)

如何替换这些语句以便LazyLoader模块内容的执行被推迟到需要时?

从文档中可以立即明白如何使用它.没有示例,并且nullege代码搜索仅提供Python本身包含的单元测试.

python python-module python-import python-importlib

8
推荐指数
1
解决办法
847
查看次数

我在运行 python 代码时收到属性错误:“模块”对象没有属性“enableTrace”

我正在使用 python 2.7 并且已经安装了模块websocket-client 0.40.0但我收到了上面提到的属性错误。

这是我的代码,我正在尝试通过 websocket 将我的 PC 连接到微控制器板

import websocket
import nltk
from nltk.tokenize import PunktSentenceTokenizer
import sys
import urllib
import urlparse
from urllib2 import HTTPError
from urllib2 import URLError
from getch import getch, pause
import numpy as np
websocket.enableTrace(True)
ws = websocket.create_connection("ws://169.254.7.144:1234") 
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我收到错误

文件“on_laptop.py”,第 35 行,位于

websocket.enableTrace(True)
Run Code Online (Sandbox Code Playgroud)

AttributeError:“模块”对象没有属性“enableTrace”

python-module python-import websocket python-2.7

8
推荐指数
3
解决办法
1万
查看次数

与python 2.x安装一起提供的默认模块列表

我有一个项目,我计划使用python实现.

在开始之前,我正在寻找一个包含标准python2.x(python2.7)安装的所有模块的完整列表,这样我就可以在不安装单个依赖项的情况下找出所有可以完成的工作,然后相应地添加依赖项.满足需求.

有没有可用的在线列表或任何其他方式来查找此列表.

python python-module

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