我已经使用了一段时间的setuptools,最近使用pip为我的项目创建了发行版,并且一切正常:诸如“ python setup.py sdist”,“ python setup.py install”之类的命令按配置工作。现在,我想使用pip以“可编辑”的方式安装,以简化我对该程序包进行维护时的测试。所以我尝试了
cd \
pip install -e .\mypackage
Run Code Online (Sandbox Code Playgroud)
这会将路径:c:\ mypackage添加到C:\ python27 \ Lib \ site-packages \ easy-install.pth。但是,在我的情况下,这是错误的,因为mypackage的结构如下:
C:\mypackage
setup.py
src
mypackage
__init__.py
...
docs
tests
Run Code Online (Sandbox Code Playgroud)
因此easy-install.pth应该包含c:\ mypackage \ src,而不是c:\ mypackage。我可以手动编辑easy-install.pth以将“ \ src”添加到添加的路径,然后“ import mypackage”成功完成,应该如此。如果我从c:\ mypackage运行命令“ python setup.py development”,则会发生相同的问题,因此该问题很可能在setuptools级别上。
setup.py具有:
setup(
...
packages = find_packages('src'),
package_dir = {'mypackage': 'src/mypackage'},
...
)
Run Code Online (Sandbox Code Playgroud)
(唯一的其他设置参数是文本项,例如作者,版本等,由于与问题无关,因此未列出)。
我不想在easy-install.pth中编辑路径。看了看文档,什么都看不到,表明将包源根目录放在与setup.py分开的文件夹中是一个问题。我做错了什么?
因此,从Python/Flask文档中,他们都建议不要将Flask Web服务器作为生产Web服务器运行,这是有意义的.我的问题是,我能够在Nginx服务器上运行我的Flask应用程序吗?为什么互联网上的所有指南都建议在UWSGI,Tornado或其他一些WSGI服务器上包装Flask?WSGI是什么意思?Flask WGSI不兼容吗?
我特别迷失,因为在这里,第一个回应指出:
Apache和Nginx都是HTTP服务器.它们可以提供静态文件,如(.jpg和.html文件)或动态页面(如Wordpress博客或用PHP或Python等语言编写的论坛).
不过这篇文章指出:
Nginx是一个Web服务器.它提供静态文件,但它无法执行和托管Python应用程序.uWSGI填补了这一空白.
我的应用程序由服务器(例如:uWSGI)和另一台服务器(例如:Nginx)处理似乎效率低下.
这段代码有什么问题?为什么 win32com.client.constants 没有 wdWindowStateMinimize 属性?
>>> import win32com.client
>>> w=win32com.client.Dispatch("Word.Application")
>>> w.WindowState = win32com.client.constants.wdWindowStateMinimize
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
w.WindowState = win32com.client.constants.wdWindowStateMinimize
File "C:\Python34\lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__
raise AttributeError(a)
AttributeError: wdWindowStateMinimize`
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过以下方式将 Python 文件上传到 PyPi,twine upload <file>但出现 SSL 错误:
C:\pypubsub>twine upload dist\PyPubSub-4.0.0rc1-py3-none-any.whl
Uploading distributions to https://upload.pypi.org/legacy/
Uploading PyPubSub-4.0.0rc1-py3-none-any.whl
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
Run Code Online (Sandbox Code Playgroud)
其他使用 SSL 的 Python 脚本也有同样的问题,例如
python setup.py bdist_wheel upload <my_package>pip install <any_package>; 但在那里我可以添加--trusted-host pypi.python.org到任何pip install命令,并且依赖项的安装和下载将成功无论是在家里还是在工作场所,这都会发生在我的公司笔记本电脑上,但不会发生在我的个人笔记本电脑上。
为了解决这个问题,我基本上尝试了对类似问题的 SO 答案(即导出 twine 试图验证的证书——大概是 pypi.python.org 的证书——然后告诉 twine 使用它):
我正在用 Python开发一个多线程应用程序。特别是,在这个应用程序中,一个线程应该能够生成一个应该通知一个(或多个)线程的事件;接收事件通知的线程应中断其执行并运行特定函数。在这个服务功能结束时,他们应该回去做他们在事件生成之前正在做的事情。
为了做这样的事情,我正在考虑使用某种发布/订阅模块。我发现了一个非常容易使用的:PyPubSub。你可以在这里找到一个关于如何使用它的非常简单的例子。
顺便说一句,当我开始使用它时,我意识到它可以满足我的要求,但前提是您只使用processes。如果您有更多线程,它会暂停整个进程(因此,其中的所有线程)以运行特定例程。这实际上不是我正在寻找的行为。不幸的是,我无法将我的应用程序从多线程更改为多进程。
你知道有什么模块可以帮助我在多线程应用程序中做我想做的事情吗?谢谢。
VS 2010中的以下版本:
class C1
{
private:
enum E {E_VAL};
static void methC1() {}
public:
class C2
{
public:
class C3
{
public:
void methC3()
{
int a=E_VAL; // this surprised me
methC1(); // and this too
}
};
};
};
int main()
{
C1::C2::C3 obj;
obj.methC3();
}
Run Code Online (Sandbox Code Playgroud)
这是标准吗?我看到了另一个SO帖子,其中一个答案将内部课程与朋友课程进行比较,但朋友的朋友不是朋友,所以想知道标准是什么.
我有一个脚本,可以重新编写Python模块,以便将所有出现的func(a)都转换为func2(a is None)。我现在想支持也func(a, msg)成为func2(a is None, msg),但是我找不到能做到这一点的模式。以下显示了我的尝试:
from lib2to3 import refactor, fixer_base
from textwrap import dedent
PATTERN_ONE_ARG = """power< 'func' trailer< '(' arglist< obj1=any > ')' > >"""
PATTERN_ONE_OR_TWO_ARGS = """power< 'func' trailer< '(' arglist< obj1=any [',' obj2=any] > ')' > >"""
class TestFixer(fixer_base.BaseFix):
def __init__(self, options, fixer_log):
# self.PATTERN = PATTERN_ONE_ARG
self.PATTERN = PATTERN_ONE_OR_TWO_ARGS
super().__init__(options, fixer_log)
def transform(self, node, results):
print("found it")
return node
class TestRefactoringTool(refactor.MultiprocessRefactoringTool):
def get_fixers(self):
fixer = TestFixer(self.options, …Run Code Online (Sandbox Code Playgroud) 我使用我的https://resources.console.aws.amazon.com/r/tags页面来查找给定区域中包含我名字的所有资源,因为我使用的清理脚本似乎无法 100% 清理我在测试部署时创建的资源。我选择一个区域,所有资源类型,我将标签过滤器留空,然后输入我的名字作为过滤器和宾果游戏!我什至可以导航到实际资源来删除它,太棒了。
我想从命令行而不是控制台执行此操作,因此我查看了aws resourcegroupstaggingapi:
aws resourcegroupstaggingapi get-resources
Run Code Online (Sandbox Code Playgroud)
这将返回一大堆资源,为每个资源和标签提供 ARN。返回的资源列表与控制台中的接近但不完全相同:缺少一些资源,并找到一些未出现在控制台中的资源。
所以忘记标签控制台,因为上面表明它可能不会显示所有内容,但也忘记了 resourcegroupstaggingapi 因为它没有得到所有内容;在给定区域获取所有 AWS 资源的正确方法是什么?
我有一个使用最新点击包的 Python 3.6 脚本。我有很多命令,所以我想移动一些到单独的模块。例如
main.py: root, with commands A and B as children
mylib1.py: commands C and D
mylib2.py: commands E and F
Run Code Online (Sandbox Code Playgroud)
然后在main我想“导入” C 到 F 这样 main 似乎有所有 6 个命令,即所有 6 个都是 root 的孩子。
蛮力是很多维护:
# mylib1.py
@click.command()
def cmd1():
...
...
@click.command()
def cmdN():
...
# main.py
import click
from mylib1 import cmd1, cmd2, ... cmdN
@click.group()
def main(): pass
@main.command()
def main_cmd1(): pass
main.add_command(cmd1)
...
main.add_command(cmdN)
Run Code Online (Sandbox Code Playgroud)
少一点维护(无需管理导入):
# mylib1.py
def add_commands(group):
group.add_command(cmd1)
...
group.add_command(cmdN) …Run Code Online (Sandbox Code Playgroud) 在Lua中是否有与Python的repr()函数相同的函数?换句话说,一个函数使用\ x打印不可打印的字符,其中x是n或b等,如果不是Lua字符串转义字符,则打印\ 000代码.我用谷歌搜索,找不到任何东西.很多关于将非printables放在字符串中的信息,没有关于使用不可打印的字符生成字符串的打印友好版本.
python ×8
aws-cli ×1
c++ ×1
certificate ×1
events ×1
flask ×1
install ×1
lua ×1
nginx ×1
pip ×1
pypubsub ×1
python-2to3 ×1
python-3.x ×1
python-click ×1
repr ×1
twine ×1
win32com ×1
wsgi ×1