启动Python解释器实例时显示的行是什么意思?
Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Run Code Online (Sandbox Code Playgroud)
所以我知道我有Python 2.7,但其余的呢?
特别令我困惑的是64 bit (AMD64) on win32和r27:82525部分.
我有Vagrant/VirtualBox运行Ubuntu 12.04 LTS OS.我已将Vagrant配置为将来宾端口8000转发到我的主机端口8888.
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 8000 => 8888 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
Run Code Online (Sandbox Code Playgroud)
当虚拟机启动时,我在端口8000上启动Django dev服务器.
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Run Code Online (Sandbox Code Playgroud)
好的,我可以把它放在后台,我甚curl localhost:8000至可以从服务器获得一些输出
<div id="explanation">
<p>
You're seeing this message because you have <code>DEBUG = True</code> …Run Code Online (Sandbox Code Playgroud) "学习Python,第四版." 提到:
稍后调用嵌套函数时会查找封闭的范围变量.
但是,我认为当一个函数退出时,它的所有本地引用都会消失.
def makeActions():
acts = []
for i in range(5): # Tries to remember each i
acts.append(lambda x: i ** x) # All remember same last i!
return acts
Run Code Online (Sandbox Code Playgroud)
makeActions()[n]每个人都是一样的,n因为变量i在调用时以某种方式查找.Python如何查找此变量?难道它根本不存在因为makeActions已经退出了吗?为什么Python不执行代码直观建议,并通过在循环运行时用for循环中的当前值替换i来定义每个函数?
从评论到THC4k:
我认为我错误地认为Python在内存中构建函数的方式.我在想,当遇到a makeActions()[n]或者a时n,Python会生成与该函数相关的所有必要的机器指令,并将其保存在内存中的某处.现在我认为它更像是将函数保存为文本字符串(并将其与闭包所需的引用捆绑在一起),并在每次调用函数时重新解析它.
我的sbt构建中有多个项目.我正在尝试从2.9.1升级到Scala 2.10,所以在我的build.sbt文件中我放了
scalaVersion := "2.10.0"
Run Code Online (Sandbox Code Playgroud)
这似乎有效,因为在我的顶级项目中,我得到:
> scala-version
[info] 2.10.0
Run Code Online (Sandbox Code Playgroud)
但是,当我切换到其他项目之一时:
> project web-client
[info] Set current project to web-client (in build file:/C:/Users/...
[web-client] $ scala-version
[info] 2.9.1
Run Code Online (Sandbox Code Playgroud)
您看到版本现已更改回2.9.1!如何强制在我的所有项目中使用相同的Scala版本?
我启动Windows Powershell(通过按下Windows键,键入"powershell"并按下启动的输入C:\Windows\System32\WindowsPowerShell\v1.0)并键入$profile并按Enter键并查看WindowsPowerShell\Microsoft.PowerShell_profile.ps1
据我所知,这不是一条有效的道路.我希望有类似的东西C:\Windows\...
$profile | Format-List * -Force然而,当我输入时,有一些进展,我得到了
AllUsersAllHosts : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Length : 50
Run Code Online (Sandbox Code Playgroud)
然而CurrentUserAllHosts,CurrentUserCurrentHosts仍然是非路径.这些非路径是什么意思?它们是指某些隐藏的值还是我需要在某处设置一些系统值?
这是我的 $PsVersionTable.PsVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 14393 206
Run Code Online (Sandbox Code Playgroud)
这是结果 Get-Host
Name : ConsoleHost
Version : 5.1.14393.206
InstanceId : a2a61a42-f2ee-46b9-b67a-ef441301bdb8
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : …Run Code Online (Sandbox Code Playgroud) 我有一台Windows 8机器,我刚刚运行了pandoc-1.13-windows.msi安装程序.安装程序没有让我选择安装路径,但它完成没有错误.我无法从命令行运行pandoc所以我猜我必须更新路径.但我不知道pandoc安装在哪里.pandoc安装在哪里?
我正在使用Firefox,但我想知道浏览器一般如何决定这一点.
似乎当我在很短的时间内两次访问同一个URL时,我的浏览器会尝试为两个请求重新使用TCP相同的连接(这称为keep-alive).但是,当我访问两个不同的URL(但仍由同一服务器提供服务)时,浏览器有时会决定为每个请求打开一个新连接.显然,浏览器不使用每个URL的一个连接策略.
我问这个是因为我正在尝试实现一个使用长轮询的Web服务.我可以想象用户可能希望在同一浏览器的多个选项卡中打开此服务.但是,使用keep-alive,第二个长轮询请求在第一个完成之前不会被发送(至少在Firefox中),因为浏览器正试图将它们都推到同一个套接字中,这是我没想到的设计了这项服务.即使浏览器实现了管道衬里,在我响应第一个请求之前也无法响应第二个请求,因为HTTP要求我按顺序完成响应.
我的程序中的第三方库试图__scrt_common_main_seh通过 Microsoft 库进行调用msvcrt.lib,但它是由某些未知库定义的,因此会出现链接器错误。我不知道这个函数应该做什么或者它是在哪里定义的。
我在网上查找了这个函数,但除了链接器错误的一般描述之外没有找到任何线索。
我相信它可能正在为 win32 GUI 应用程序做一些设置。定义它的库可能被 Visual Studio 配置为项目依赖项,但我的项目正在使用 Bazel。
我对可以在Fermi GPU中启动的最大线程数感到困惑.
我的GTX 570设备查询说明如下.
Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 65535
Run Code Online (Sandbox Code Playgroud)
根据我的理解,我将以上陈述理解为:
对于CUDA内核,我们最多可以启动65536个块.每个启动的块最多可包含1024个线程.因此原则上,我可以启动多达65536*1024(= 67108864)个线程.
它是否正确?如果我的线程使用了很多寄存器怎么办?我们仍然能够达到理论上最大的线程数吗?
在编写并启动CUDA内核之后,我怎么知道我发起的线程和块的数量确实已经实例化了.我的意思是我不希望GPU计算一些垃圾,或者表现得非常奇怪,如果我偶然实例化了比特定内核更多的线程.
我正在运行一个 python 二进制目标,并且bazel run xxx在我正在执行的目标中print(sys.version)。这输出Python version 3.6.8 (default, Jan 14 2019, 11:02:34)
当我python直接输入命令时,我得到Python 3.7.3 (default, Apr 3 2019, 19:16:38)
bazel 为什么/如何选择不同的 python 版本?
python ×2
32bit-64bit ×1
bazel ×1
browser ×1
c++ ×1
closures ×1
cuda ×1
django ×1
gpu ×1
http ×1
keep-alive ×1
long-polling ×1
pandoc ×1
powershell ×1
sbt ×1
scala ×1
tcp ×1
thrust ×1
ubuntu-12.04 ×1
vagrant ×1
winapi ×1
windows ×1
windows-10 ×1