我在Debian框中安装了vsFTP.使用ftp命令手动上传文件时,没关系.即,以下会话工作:
john@myhost:~$ ftp xxx.xxx.xxx.xxx 5111 Connected to xxx.xxx.xxx.xxx. 220 Hello,Welcom to my FTP server. Name (xxx.xxx.xxx.xxx:john): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> put st.zip local: st.zip remote: st.zip 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 File receive OK. 12773 bytes sent in 0.00 secs (277191.8 kB/s) ftp> 221 Goodbye.
(请注意,如上所述,我将vsFTP服务器配置为使用非默认端口,例如5111由于某种原因)
现在,当我在python中编写脚本以编程方式上传文件时,它失败了.错误显示'超时',如下面的会话所示:
john@myhost:~$ ipython Python 2.5.2 (r252:60911, Jan 24 …
我正在编写一个允许用户登录的python程序.我不想实现自己的身份验证,而是希望利用OS(linux)机制.也就是说,当用户通过输入用户名/密码对(应该是有效的OS用户)尝试登录我的应用程序时,我需要通过操作系统对该对进行身份验证.怎么做 ?它可能需要子进程模块,但我试过没有运气.
一个小问题:在Clojure中,如何发音一些函数名称,例如conj
?它是否发音为完整的单词"conjoin",或者简单地将每个角色拼写为"conj",同时与其他程序员交谈?同样的问题,例如, assoc
,disj
,nth
等.
我不是母语为英语的人,我希望避免因团队中不同的发音而产生的误解.
根据文档,我可以指示 pip 使用我的私人 pypi 存储库而不是官方存储库:
For pip this can be done by setting the environment variable PIP_INDEX_URL in your .bashrc/.profile/.zshrc:
export PIP_INDEX_URL=http://localhost:8080/simple/
Run Code Online (Sandbox Code Playgroud)
所以我在我的 Debian 服务器上添加了我的私人存储库(例如, http://pypi.mycompany.com/simple
)/etc/profile
。但是 pip 仍然会引发错误:
john@server:~$ sudo pip install ipython
Downloading ...
Cannot fetch index base URL https://pypi.python.org/simple/
...
Run Code Online (Sandbox Code Playgroud)
看起来 pip 忽略了PIP_INDEX_URL
我设置的环境变量。为什么?
更新:
按照@Ivo 的指示,我发现我的 Python 根本没有看到该变量:
john@server:~$ sudo python -c "import os; print(os.getenv('PIP_INDEX_URL'))"
None
Run Code Online (Sandbox Code Playgroud) 我是一个独特的人。我的意思是我与这个世界上所有其他人都不同。当我在 flutter 中创建一个 UniqueKey 时,它与其他的有什么不同?
我正在扭曲我的旧java/python头部的clojure方式.请帮助我理解clojure的懒惰特征.
=> (def myvar (lazy-seq [1 2 (prn "abc")]))
#'user/myvar
Run Code Online (Sandbox Code Playgroud)
以上内容很容易理解.由于它是一个懒惰的序列,(prn"abc")将不会被评估,因此没有打印.
=> (def myvar (lazy-seq [1 2 (prn undefined-var)]))
CompilerException java.lang.RuntimeException: Unable to resolve symbol: undefined-var in this context, compiling:(NO_SOURCE_PATH:1)
Run Code Online (Sandbox Code Playgroud)
如您所见,上面会出现错误.为什么?
我的(错误的)理解是,因为它是懒惰的,所以(prn undefined-var)可以合法地在这里,即使"undefined-var"尚未定义.
请任何人以正确的方式指出我的理解.
为什么以下代码有效?我认为应该有编译时错误。我认为return
体内返回一个int
(值1
)。如果不是,它必须返回 a Future
,这也不符合返回类型。发生了什么事await
?
void longRun() async {
return await Future.delayed(
Duration(seconds: 3),
()=>1,
);
}
Run Code Online (Sandbox Code Playgroud)
如果我将await
部分分配给变量,如下所示,编译器就会开始抱怨,这是显而易见且易于理解的。但为什么上面的代码没有抱怨呢?
void longRun() async {
var foo = await Future.delayed(
Duration(seconds: 3),
()=>1,
);
return foo;
}
Run Code Online (Sandbox Code Playgroud)
继续研究我发现了更令人困惑的事情:以下所有版本都有效。它们看起来一模一样,都是有线的。
版本1:
void longRun() async {
return await Future.delayed(Duration(seconds:2), ()=>1);
}
Run Code Online (Sandbox Code Playgroud)
版本2:
Future<void> longRun() async {
return await Future.delayed(Duration(seconds:2), ()=>1);
}
Run Code Online (Sandbox Code Playgroud)
版本3:
Future<int> longRun() async {
return await Future.delayed(Duration(seconds:2), ()=>1);
}
Run Code Online (Sandbox Code Playgroud)
版本4:
Future longRun() async {
return …
Run Code Online (Sandbox Code Playgroud) 以下显示修饰符"while"表示一旦元素与检查匹配,迭代将停止:
=> (for [x [3 2 3 1] :while (< x 3)] x)
()
Run Code Online (Sandbox Code Playgroud)
但是为什么以下不停止迭代?它应该在我的(错误的)理解中返回一个空列表.
=> (for [x [3 2 3 1] y [:a :b] :while (< x 3)] [x y])
([2 :a] [2 :b] [1 :a] [1 :b])
Run Code Online (Sandbox Code Playgroud)
实际上,事实证明在这种情况下"when"和"while"修饰符之间没有区别.
=> (for [x [3 2 3 1] y [:a :b] :when (< x 3)] [x y])
([2 :a] [2 :b] [1 :a] [1 :b])
Run Code Online (Sandbox Code Playgroud)
怎么会这样?
我正在为没有互联网接入的局域网设置本地pypi服务器.为此,我想提前从官方pypi服务器下载所有软件包(然后我将服务器移动到LAN).
看起来像pep381客户端将完成这项工作.但是命令"pep381run.py py-pkgs"很高兴打印出"Synchronizing xxx"(xxx是软件包名称),但是没有找到任何在"py-pkgs"目录中下载的软件包.为什么?
操作系统是windows7 BTW.