setup.py # using setuptools
mymodule/
|- __init__.py
|- mymodule_core.py
|- utils.py
当我从egg在系统中easy_installmymodule
时,这个导入工作得很好:
# mymodule_core.py
from mymodule.utils import some_functions
但是我还希望在命令行中运行mymodule_core.py
,而不需要安装它(用于简短的测试等)。在这种情况下,上一次导入将失败,这是有效的:
# mymodule_core.py
from utils import some_functions
如何处理导入
以便在两种情况下都能工作?
一种简单的方法是处理imporderor
,如下所示...
# mymodule_core.py
try:
from mymodule.utils import some_functions
except ImportError:
from utils import some_functions
...这在你的情况下很好。
如果您的包结构是“相对”导入不起作用,我倾向于在源文件的顶部放置类似的内容······
import sys
import os
PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
我正在运行Ubuntu 18.04。 我使用mysql连接器-python连接Python到MySQL。 我使用的是Python 3.6.7,并且已经安装了mysql连接器-python。 我已经安装了mysql连接器-python-py3_8.0.13-1ubuntu18.10_all.deb. 在运行Python脚本时,mysql。连接器模块似乎加载正确,但脚本在碰到光标时失败。next()具
假设我有一些资源,我想在用python编写的aws lambda中的不同请求之间共享。我应该如何实现这一点? 是否有“启动后”挂钩,或者我应该在第一次调用时惰性地创建资源?“延迟初始化”的缺点是,它意味着一些请求会随机变慢,因为您选择了一个消费者来承担启动成本。 此外…这些资源会在lambda可执行文件被“冻结”后幸存下来吗? 本页https://docs.aws.amazon.com/lambd
我需要在我的中添加一个新的目录位置,但问题是我使用的是一个全新安装的系统(Linux),其中尚未定义任何。我读过并使用过,我认为我很了解它,但我不知道当没有存在时会发生什么。 我不能附加到不存在的东西上,但我希望当前发现的所有重要库都能正常工作,因此要小心,我在Python中使用了来获取所有标准值。然后我为定义了一个-变量,包括我刚刚找到的所有节点,以及我的新目录。但是哇,很多东西都停止工作了!P
我想定义一个返回树节点值列表的函数。列表按级别顺序排列(从上到下,从左到右),如果缺少孩子,则在其位置插入“无”。 这是二叉树实现
我有一些测试代码: 运行此代码时,我收到一个错误,显示未定义“inputed_num” 我的问题是:在wrap函数中,func是否可以得到“inputed_num”的闭包? 无论如何,如果没有,我应该如何实现我的目标:初始化一些值,并在主函数中直接使用这个值。 思考。
我正在尝试使用本教程从一个使用selenium and beautiful soup的站点提取房地产列表信息:https://medium.com/@ben.sturm/scraping-house-listing-data-using-Selenium-and-Beautiful Soup-1CBB94BA9492 目的是在找到“下一页”按钮之前收集第一页的所有href链接,导航到下一页并收集该