无论何时使用PyCharm提供的autoimport,它都会生成绝对路径导入.即
from my_package.my_subpackage import my_thing
Run Code Online (Sandbox Code Playgroud)
代替
from .my_subpackage import my_thing
Run Code Online (Sandbox Code Playgroud)
导入python包时是否有使用相对导入而不是绝对导入的设置?
任何使用 AWS CDK 的人都会遭受可怕的资源标识符。
堆栈/嵌套堆栈名称示例:
或资源名称示例:
这些标识符读起来很糟糕。是否有任何解决方法来覆盖这些标识符?
我试图设置资源的 ID/名称/标识符/别名。然而,似乎 cdk 或 cloudformation 本身正在生成这些字符串。
谢谢你的建议!
是否可以在同一个项目中拥有两个 CDK 应用程序,如下所示:
from aws_cdk import core
from stack1 import Stack1
from stack2 import Stack2
app1 = core.App()
Stack1(app1, "CDK1")
app1.synth()
app2 = core.App()
Stack2(app2, "CDK2")
app2.synth()
Run Code Online (Sandbox Code Playgroud)
并部署它们?同步/异步?
是否可以在另一个应用程序中引用一个应用程序中的某些资源?
为什么说它找不到我的课?为什么我要创建另一个具有相同名称的类,以使其不抱怨?
from typing import Dict
class WeekDay:
def __init__(self, day_number, day_name):
self.day_name = day_name
self.day_number = day_number
@staticmethod
def get_week_days() -> Dict[str, WeekDay]: # WeekDay unresolved reference error
weekdays = {
"monday": WeekDay(1, "Monday"),
"tuesday": WeekDay(2, "Tuesday"),
"wednesday": WeekDay(3, "Wednesday"),
"thursday": WeekDay(4, "Thursday"),
"friday": WeekDay(5, "Friday"),
"saturday": WeekDay(6, "Saturday"),
"sunday": WeekDay(7, "Sunday")
}
return weekdays
Run Code Online (Sandbox Code Playgroud) pip install . --pre --upgrade(它有效,因为依赖项是在 中指定的setup.py),然后我突然发现该--pre标志已传播到第 3 方依赖项“C”。我不想那样 - 我只想安装我的预发行版。问题:区分内部/外部依赖关系的最明智的方法是什么?
PS我已经想到了一些解决方案,但它们看起来不是很优雅。
解决方案 1:使用两个requirement.txt 文件。一个将包含内部依赖项并将使用--pre标志运行。另一个将包含第 3 方依赖项,并且将在没有该标志的情况下运行。
我正在编写一个bash脚本,它在新安装的服务器中引导整个项目基础结构,我想用letcecrypt certbot配置ssl安装.我执行行后:
certbot --nginx -d $( get_server_name ) -d www.$( get_server_name ).com
Run Code Online (Sandbox Code Playgroud)
我被提示几个问题.可以在没有任何交互的情况下运行certbot,同时将一些参数作为参数或其他东西传递吗?
假设您发布了两个预发布版本:
package 0.0.1.dev0
package 0.0.2.dev0
Run Code Online (Sandbox Code Playgroud)
我的install_requires部分setup.py指出:
[
'package>=0.0.2,<1.0.0'
]
Run Code Online (Sandbox Code Playgroud)
现在,当我运行时pip install . --upgrade --pre出现错误:
错误:找不到满足要求的版本 package<1.0.0,>=0.0.2(来自版本:0.0.1.dev0, 0.0.2.dev0) 错误:没有找到与 package<1.0.0 匹配的发行版,>=0.0.2
我究竟做错了什么?该--pre标志不应该告诉 pip 匹配预发布版本吗?
我想这个问题在互联网上应该有很清楚的答案。但对于何时使用一种类型的堆栈以及何时使用另一种类型的堆栈,我没有找到足够的答案。
我可以仅使用常规堆栈完美地建模我的基础设施。此外,我可以仅使用嵌套堆栈和一个根常规堆栈来完美地建模我的基础设施。从项目角度来看 - 唯一的区别是堆栈类型名称。其他一切都一样。
例如,我正在使用 AWS CDK - 一个合成器,可以将 python 合成到 CloudFormation 模板。我可以使用 Stacks 做所有事情,并且可以简单地查找 Stack 并将其替换为 NestedStack。基础设施将被重新部署,但本质上没有任何改变。
amazon-web-services aws-cloudformation aws-cdk infrastructure-as-code nested-stack
想象一下,您创建了一个可重用的 django 应用程序“A”,它依赖于另一个可重用的 django 应用程序“B”。现在,如果我想使用应用程序“A”,我不仅必须在 INSTALLED_APPS 中添加“A”,还要添加“B”?如何仅添加“A”而不显式添加“B”?
我不确定这种奇怪的东西或者tesseract-ocr本身是不是我的基础设施.
每当我在单进程环境中使用image_to_stirng时 - tesseract-ocr工作正常.但是当我用gunicorn产生多个工作人员并且所有人都开始使用ocr读取工作时 - tesseract-ocr开始阅读非常差(而不是来自性能老虎钳,但不是精确的老虎钳).即使在负载完成后 - tesseract也没有相同的准确性.我需要重新启动所有工人才能让tesseract再次运转良好.
这太超级怪了.也许有人已经过期或听说过这个问题?
python ×6
aws-cdk ×3
pip ×2
python-3.x ×2
setup.py ×2
setuptools ×2
annotations ×1
bash ×1
certbot ×1
dependencies ×1
django ×1
django-apps ×1
gunicorn ×1
lets-encrypt ×1
nested-stack ×1
pycharm ×1
pypi ×1
server ×1
ssl ×1
tesseract ×1