alibaba-archive / fcli

The cli of function compute.
81 stars 18 forks source link

不能使用Windows版本的fcli工具(fcli.exe)上传Python包 #11

Closed zjuchenyuan closed 7 years ago

zjuchenyuan commented 7 years ago

https://py3.io/Python.html#windowsfclifcliexe

这个fcli.exe(版本0.5)把windows的\\路径名当成了文件名的一部分,部署后在/code文件夹下也就对应创建了名称为bs4\\__init__.py这样的文件(根本没有bs4子文件夹),Python当然会找不到bs4这个包啊!摔!

hryang commented 7 years ago

您好,抱歉给您造成了困扰。由于函数计算的运行环境都是在linux下,因此当在windows下使用fcli并执行sbox命令时,需要在windows环境下执行linux container。当我们在开发fcli时,是用ECS windows来测试win版本的,没有办法cover上述场景。接下来,我们会申请windows开发机,复现您的问题并fix。

谢谢您的反馈。

zjuchenyuan commented 7 years ago

重现方法

创建项目文件夹fcli_win_test,在此文件夹内用pip install bs4 -t .得到bs4文件夹

创建index.py:

import os
def index(event, context):
    import bs4
    return {"fuck":list(os.listdir("/code"))}

在Win下配置好fcli.exe后,进入fcli shell 使用这个命令上传:

mkf fcli_win_test -d fcli_win_test -h index.index -t python2.7

在控制台调用此函数,可以得到ImportError的traceback

注:在Linux 64bit下能正常返回,这个问题是fcli.exe的问题

修改index.py为:

import os
def index(event, context):
    # import bs4
    return {"fuck":list(os.listdir("/code"))}

调用函数可以看到文件名包含\\字符的文件

hryang commented 7 years ago

您好,v0.6已经fix了该问题。另外,本周我们会release python sdk,如果您感兴趣,可以参与开发。