小编Joh*_*ang的帖子

FTP上传文件手动工作,但使用Python ftplib失败

我在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 ftp

6
推荐指数
1
解决办法
7005
查看次数

如何以编程方式(python)使用OS用户验证用户名/密码

我正在编写一个允许用户登录的python程序.我不想实现自己的身份验证,而是希望利用OS(linux)机制.也就是说,当用户通过输入用户名/密码对(应该是有效的OS用户)尝试登录我的应用程序时,我需要通过操作系统对该对进行身份验证.怎么做 ?它可能需要子进程模块,但我试过没有运气.

python linux authentication login

6
推荐指数
1
解决办法
3384
查看次数

如何用Clojure发音some functions

一个小问题:在Clojure中,如何发音一些函数名称,例如conj?它是否发音为完整的单词"conjoin",或者简单地将每个角色拼写为"conj",同时与其他程序员交谈?同样的问题,例如, assoc,disj,nth等.

我不是母语为英语的人,我希望避免因团队中不同的发音而产生的误解.

lisp clojure

6
推荐指数
1
解决办法
545
查看次数

pip 不支持 PIP_INDEX_URL 与 sudo

根据文档,我可以指示 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)

python pip repository

5
推荐指数
1
解决办法
6844
查看次数

flutter 中 UniqueKey 的范围是什么?

我是一个独特的人。我的意思是我与这个世界上所有其他人都不同。当我在 flutter 中创建一个 UniqueKey 时,它与其他的有什么不同

dart flutter statefulwidget

5
推荐指数
1
解决办法
3052
查看次数

对Clojure的懒惰评估发生了什么

我正在扭曲我的旧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"尚未定义.

请任何人以正确的方式指出我的理解.

clojure lazy-evaluation

4
推荐指数
2
解决办法
774
查看次数

在dart中引入await程序会有什么后果?

为什么以下代码有效?我认为应该有编译时错误。我认为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)

future async-await dart

3
推荐指数
1
解决办法
116
查看次数

while修饰符在clojure中意味着什么?

以下显示修饰符"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)

怎么会这样?

clojure

2
推荐指数
1
解决办法
144
查看次数

pep381client(pep381run)不会从官方pypi服务器下载软件包

我正在为没有互联网接入的局域网设置本地pypi服务器.为此,我想提前从官方pypi服务器下载所有软件包(然后我将服务器移动到LAN).

看起来像pep381客户端将完成这项工作.但是命令"pep381run.py py-pkgs"很高兴打印出"Synchronizing xxx"(xxx是软件包名称),但是没有找到任何在"py-pkgs"目录中下载的软件包.为什么?

操作系统是windows7 BTW.

python local repository pypi

2
推荐指数
1
解决办法
2075
查看次数