我想停止评估正在导入的模块,而不停止整个程序.
这是我想要实现的一个例子:
main.py
Run Code Online (Sandbox Code Playgroud)print('main1') import testmodule print('main2')testmodule.py
Run Code Online (Sandbox Code Playgroud)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
我只是完成这个练习创建和Python中导入模块初学者.
我想知道模块中的所有内容是否都被导入到计算机的内存中?
随着代码变得越来越长并且导入的模块变得越来越多,以后会对内存产生影响吗?
我是否需要知道内存管理才能编写资源高效的代码?
我是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 ?
我正在尝试使用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项目,这是我想要的文件夹结构:
/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脚本,它从互联网上获取图像,下载它,设置为桌面背景并在一分钟后更新.问题很可能是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 -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)
我的问题不是关于同时运行python的两个模块,而是关于如何在python脚本中使用pdb,该脚本中包含相对导入,并且通常通过使用"python -m"运行脚本来处理.
重申,我的问题可能是,如何在这样的脚本上使用pdb而不必更改脚本本身只是为了让它与pdb一起运行(即:尽可能保留脚本内的相对导入).不应该这样,或者如果我想使用pdb,我是否被迫以某种方式重构?如果是这样的话,我必须引入的脚本结构的最小变化是什么,以允许我利用pdb.
总而言之,我并不关心我如何运行脚本,只要我可以使用pdb而不改变它的内部结构(相对导入等)太多.
在我的模块中,我有几个依赖于具有较长启动时间的外部模块的功能.我该怎么用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 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实现.
在开始之前,我正在寻找一个包含标准python2.x(python2.7)安装的所有模块的完整列表,这样我就可以在不安装单个依赖项的情况下找出所有可以完成的工作,然后相应地添加依赖项.满足需求.
有没有可用的在线列表或任何其他方式来查找此列表.
python-module ×10
python ×9
alembic ×1
cx-freeze ×1
import ×1
path ×1
pdb ×1
pyserial ×1
python-2.7 ×1
python-3.x ×1
setup.py ×1
websocket ×1
windows64 ×1