已经使用扁平包,我没想到我遇到嵌套包的问题.这是…
dir
|
+-- test.py
|
+-- package
|
+-- __init__.py
|
+-- subpackage
|
+-- __init__.py
|
+-- module.py
Run Code Online (Sandbox Code Playgroud)
这两个package/__init__.py和package/subpackage/__init__.py是空的.
module.py# file `package/subpackage/module.py`
attribute1 = "value 1"
attribute2 = "value 2"
attribute3 = "value 3"
# and as many more as you want...
Run Code Online (Sandbox Code Playgroud)
test.py(3个版本)# file test.py
from package.subpackage.module import *
print attribute1 # OK
Run Code Online (Sandbox Code Playgroud)
这是导入东西的不良和不安全的方式(大量导入),但它有效.
# file test.py
import package.subpackage.module
from package.subpackage import module # …Run Code Online (Sandbox Code Playgroud) 该pip文件没有太多的字眼(我的眼睛),有关参数的处理源和目的地.
我经历了安装Sphinx的奇怪事情,pip3并且玩了可用的选项,似乎允许我在我想要的地方安装它(出于某些原因,我希望每个东西都在自己的目录中).我说"玩",不是说我没有读过文档也没试过--help,但是因为pip3 help install没有帮助,而且pip安装官方文档页面太短了,实际上说的不多于pip3 help install.
以下是完成的实验和观察结果.
--root我下载了当前的Sphinx存储库tarball,将其解压缩,进入新创建的目录并执行:
pip3 install --root /home/<user-name>/apps/sphinx -e .
Run Code Online (Sandbox Code Playgroud)
我虽然这是相同的--prefix,因为没有--prefix明显可用的选项.令我惊讶的是,它将命令安装在binPython3目录中(也在本地安装在它自己的目录中)和库目录中的一些东西,奇怪的是,而不是/home/<user-name>/apps/sphinx目录,我得到一个/home/<user-name>/apps/sphinx/home/<user-name>/apps/sphinx/…:它附加了指定的路径对自己.
特别是最后一点是否有意义?目的是--root什么?
--target然后我,如果它不是--root,那可能是--target,所以我做了(清理后):
pip3 install --target /home/<user-name>/apps/sphinx -e .
Run Code Online (Sandbox Code Playgroud)
它没有用,抱怨一个未被承认的--home选项.
--home它抱怨的是什么(我没有指明),究竟是--target什么?
--install-option='--prefix=…'在WebO搜索和StackOverflow上的一个线程之后,我尝试了这个:
pip3 install --install-option='--prefix=/home/<user-name>/apps/sphinx' -e .
Run Code Online (Sandbox Code Playgroud)
它只是抱怨它无法安装.pth文件而且我的问题出了问题PYTHONPATH,这可以通过添加变量定义来重新启动:
export PYTHONPATH=/home/<user-name>/apps/sphinx/lib/python3.4/site-packages …Run Code Online (Sandbox Code Playgroud) (对于tl; dr,请参阅下面的#questions)
我有多个git存储库浅克隆.我使用的是浅克隆,因为它与脏克隆相比要小得多.每个人都克隆着做git clone --single-branch --depth 1 <git-repo-url> <dir-name>.
这工作正常,但我没有看到如何更新它.
当我用标签克隆时,更新没有意义,因为标签是冻结的时间点(据我所知).在这种情况下,如果我想更新,这意味着我想要通过另一个标签克隆,所以我只是rm -rf <dir-name>再次克隆.
当我克隆了主分支的HEAD然后想要更新它时,事情变得更加复杂.
我试过git pull --depth 1但是虽然我不想把任何东西推到远程存储库,它抱怨它不知道我是谁.
我试过了git fetch --depth 1,但是虽然它似乎更新了一些东西,但我检查它是不是最新的(远程存储库上的某些文件的内容与我克隆上的文件不同).
在/sf/answers/1435601401/之后,我试过git fetch --depth 1; git reset --hard origin/master,但有两件事:第一,我不明白为什么git reset需要,第二,尽管文件似乎是最新的,但仍有一些旧文件,以及git clean -df不会删除这些文件.
让克隆创建git clone --single-branch --depth 1 <git-repo-url> <dir-name>.如何更新它以达到相同的效果rm -rf <dir-name>; git clone --single-branch --depth 1 <git-repo-url> <dir-name>?或者是rm -rf <dir-name>再次克隆唯一的方法?
在POSIX文档中,我看不到阻止对UNIX域套接字使用SO_REUSEADDR套接字选项的任何内容AF_UNIX.
但是,bind如果套接字节点已经存在,它总是会失败,并且似乎被忽略,并且似乎需要在调用之前首先取消链接文件系统上的套接字节点bind; 简而言之,它不重用地址.关于这个问题,网上有很多线程,没有解决方案.
我不会坚持,如果它不起作用,它不起作用(至少在BSD和Linux系统上似乎都是一样的),并且只是有一个问题:这是正常的行为吗?有没有提示应该支持的指针,或者相反,任何指示它不应该支持?或者这是未指定的?请注意,问题在POSIX上下文中提出,而不是在任何特定平台上下文中.
我欢迎任何POSIX参考此事.
unlink知道什么我在网上看到了一些线程,建议unlink任何节点之前的预期名称bind.我觉得它不安全,在这种情况下,应该只取消链接已经是套接字节点的节点:ex.取消链接名为的文本文件以mysocket重新创建同名的套接字节点可能是错误的.在这个目的中,这是一个小小的片段:
/* Create the socket node
* ----------------------
* Note `SO_REUSEADDR` does not work with `AF_UNIX` sockets,
* so we will have to unlink the socket node if it already exists,
* before we bind. For safety, we won't unlink an already existing node
* which is not a socket node.
*/
status = stat (path, …Run Code Online (Sandbox Code Playgroud) 我指的是Markdown: daringfireball.net上的语法,它似乎是Markdown语法的主要来源.
众所周知,Markdown基于邮件和新闻组中已有的格式.在邮件和新闻组中,我经常看到这样的内容用于脚注和转发引用:
Blah, blah [1] blah, blah.
[1] http://somesite.com/somepage.html#someanchor
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,这种非常常见的格式不是主要Markdown参考的一部分.它只知道如下:
Blah, blah [some title][id] blah, blah.
[id]: http://somesite.com/somepage.html#someanchor
Run Code Online (Sandbox Code Playgroud)
我从来没有在新闻组或邮件列表中看到任何使用过这种情况,而前者非常普遍.
我可以找到一种名为PHP Markdown Extra的东西,它有更接近常见的自发用法,但足够不同:
Blah, blah [^id] blah, blah.
[id]: http://somesite.com/somepage.html#someanchor
Run Code Online (Sandbox Code Playgroud)
更近,但我仍然没有看到有人在新闻组或邮件中使用它.
我想知道为什么这么多常见用法不是主要降价参考的一部分,甚至不是我所知道的任何变体的一部分.如果有人知道这个的原因,我很想知道这个原因.另一方面,如果我错过了一些东西,比如错过了一个非常常用的降价变体,并且在实践中包括了写脚注或转发参考的最自然方式(本文中介绍的第一个),那么我会喜欢知道它.
祝你有美好的一天.
根据" mod_fcgi不是mod_fastcgi的替代品 "和" mod_fcgid和多线程FastCGI应用程序的问题 ",mod_fcgid并不是设计为期望FastCGI服务器能够同时处理多个请求,即不期望FastCGI服务器是多线程的.
前者说:
它们都支持已发布的"FastCGI"协议,但它们如何控制它们的FastCGI服务器有很大不同.mod_fcgid可以快速消除FastCGI服务器并启动新服务器.
后者说:
似乎mod_fcgid不知道我的服务器是多线程的,并且能够处理多个请求.
这只是两个引用,其他地方也有一些.
线程不仅仅是节省CPU和内存,而且避免了创建新进程的开销(创建一个线程比创建一个进程更轻),这可以通过硬件或操作系统性能来减轻; 这也是一个逻辑问题,不容易缓解:线程属于同一个进程,不仅是性能,还有逻辑,例如.进程无法共享线程可以共享的内容,因为进程是隔离运行的(模IPC,但不一样).
至少出于这个逻辑原因,可能会引发多线程FastCGI服务器的问题.FastCGI服务器可以保存上下文(在进程之间共享可能很大且成本很高),当它被设计为多线程服务器时,它对于所有请求处理程序是全局的.为每个并发请求分配新进程不允许更多地确保公共上下文.
以上两个报价是否仍然正确(一个是2011年,另一个是2010年)?我在网上搜索了这个主题,但找不到任何相关内容.如果它仍然是真的,那么,它是否总是正确或是否有预期的计划mod_fcgid,要了解多线程FastCGI服务器并接受这些服务器可能被设计为处理多个并发请求?
从MS-DOS开始,我知道使用中断的系统调用.在旧论文中,我看到了int 80h在Linux上调用系统函数的参考.由于现在相当长的一段时间,我知道int 80h不赞成使用该syscall指令.但我不能让它在我的32位机器上工作.
该syscall指令仅用于64位平台吗?不是32位Linux使用syscall?
在我的32位Linux(Ubuntu Precise)上,该程序终止于核心转储:
global _start
_start:
mov eax, 4 ; 4 is write
mov ebx, 1 ; 1 is stdout
mov ecx, message ; address of string
mov edx, length ; number of bytes
syscall
mov eax, 1 ; 1 is exit
xor ebx, ebx ; return code 0
syscall
message:
db 10,"Hello, World",10,10
length equ $ - message
Run Code Online (Sandbox Code Playgroud)
我试过sysenter而不是syscall,但它以同样的方式崩溃.
我正在构建一个简单的iOS应用程序,使用REST API与Firebase对话.
基本上,我NSURLSession.sharedSession().dataTaskWithRequest用来连接
该应用程序在iOS 8中运行良好.我能够通过GET/PUT/PATCH/DELETE来操作我的数据.但是由于iOS 9引入了ATS,我现在有了https错误:
NSURLSession/NSURLConnection HTTP加载失败
(kCFStreamErrorDomainSSL,CFNetwork SSLHandshake失败)
我完全了解Info.plist中的变通方法解决方案. 但是,我想在iOS 9中使用新的安全功能.
我检查了Firebase连接安全性(通过点击Chrome的绿色锁定按钮),它似乎与Apple的ATS要求兼容.
我的错误是因为我使用NSURLSession的方式?或者是因为Firebase安全设置?
PS:我测试了https://firebase.com并且NSURLSession连接了精细的w/o错误.我的应用程序也很简单,我不需要身份验证.
谢谢您的帮助.
禁用Pylint检查或绕过其中一个警告,不应该没有明确的原因.我希望能够在我禁用它的地方评论这些原因; 到目前为止,没有成功.
举个例子,让一个只有构造函数和单个方法的类.Pylint有理由警告的事情,尽管可能有很多理由在本地禁用此警告.
class Foo(object): # pylint: disable=R0903 --- Closure object
def __init__(self, data):
…
def single_method(argument):
…
Run Code Online (Sandbox Code Playgroud)
有了上述内容,Pylint不仅仍然警告"公共方法太少",而且还抱怨"糟糕的期权价值'R0903 ---关闭对象'".
这个问题有一个比这个简单的例子更广泛的理性(可能是我不知道的一种更好的方式来实现在Python闭包),我也希望能够发表评论大多数在线指令,在同一行,为了清晰和简单.顺便说一句,也可能有助于提醒选项的用途.作为一个例子,提醒# pylint: disable=R0903 --- Too few public methods(保持相同的例子).
用更少的话说:有没有办法评论Pylint内联指令?
当消息的某些部分使用用户语言,而另一些消息使用英语时,本地化的命令行应用程序看起来很奇怪。
我不知道从源代码安装Python 3时是否搞砸了任何东西,似乎没有*.mo文件,因此argparse(整体上)不支持本地化。
该API似乎也没有提供本地化的方法。还是我错过了?
我可以打补丁argparse.py,但我不会打补丁,因为我希望它可移植,并且我不建议用户打补丁他们的Python安装。
用更少的问题提问:如何在argpase不修补Python标准库的情况下进行本地化?
相关问题:这可能吗?