2016-07-07 122 views
6

我在窗口框中使用python 2.7。我可以使用pip install来安装烧瓶,如您所见如下:错误安装烧瓶在windows下virutalenv - [错误2]系统找不到指定的文件

cool 但是,在我创建virtualenv后,我试图做同样的事情时得到了错误。

脚本:如下

$pip install virtualenv 
$cd /d d: 
$mkdir test 
$cd test 
$virtualenv flaskEnv 
$cd flaskEnv/Scritps/ 
$activate 
$cd ../../ 
$pip install flask 

日志文件:

Collecting flask 
    Using cached Flask-0.11.1-py2.py3-none-any.whl 
Requirement already satisfied (use --upgrade to upgrade): click>=2.0 in c:\projects\flask-react\flsk\lib\site-packages (from flask) 
Requirement already satisfied (use --upgrade to upgrade): Werkzeug>=0.7 in c:\projects\flask-react\flsk\lib\site-packages (from flask) 
Collecting Jinja2>=2.4 (from flask) 
    Using cached Jinja2-2.8-py2.py3-none-any.whl 
Collecting itsdangerous>=0.21 (from flask) 
Collecting MarkupSafe (from Jinja2>=2.4->flask) 
    Using cached MarkupSafe-0.23.tar.gz 
Building wheels for collected packages: MarkupSafe 
    Running setup.py bdist_wheel for MarkupSafe: started 
    Running setup.py bdist_wheel for MarkupSafe: finished with status 'error' 
    Complete output from command c:\projects\flask-react\flsk\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\admini~1\\appdata\\local\\temp\\pip-build-3ep417\\MarkupSafe\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d c:\users\admini~1\appdata\local\temp\tmp8mkr70pip-wheel- --python-tag cp27: 
    running bdist_wheel 
    running build 
    running build_py 
    creating build 
    creating build\lib.win32-2.7 
    creating build\lib.win32-2.7\markupsafe 
    copying markupsafe\tests.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_compat.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_constants.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_native.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\__init__.py -> build\lib.win32-2.7\markupsafe 
    running egg_info 
    writing MarkupSafe.egg-info\PKG-INFO 
    writing top-level names to MarkupSafe.egg-info\top_level.txt 
    writing dependency_links to MarkupSafe.egg-info\dependency_links.txt 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'MarkupSafe.egg-info\SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'MarkupSafe.egg-info\SOURCES.txt' 
    copying markupsafe\_speedups.c -> build\lib.win32-2.7\markupsafe 
    running build_ext 
    building 'markupsafe._speedups' extension 
    error: [Error 2] The system cannot find the file specified 

    ---------------------------------------- 
    Running setup.py clean for MarkupSafe 
Failed to build MarkupSafe 
Installing collected packages: MarkupSafe, Jinja2, itsdangerous, flask 
    Running setup.py install for MarkupSafe: started 
    Running setup.py install for MarkupSafe: finished with status 'error' 
    Complete output from command c:\projects\flask-react\flsk\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\admini~1\\appdata\\local\\temp\\pip-build-3ep417\\MarkupSafe\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\admini~1\appdata\local\temp\pip-8v3_ep-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\projects\flask-react\flsk\include\site\python2.7\MarkupSafe: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build\lib.win32-2.7 
    creating build\lib.win32-2.7\markupsafe 
    copying markupsafe\tests.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_compat.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_constants.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\_native.py -> build\lib.win32-2.7\markupsafe 
    copying markupsafe\__init__.py -> build\lib.win32-2.7\markupsafe 
    running egg_info 
    writing MarkupSafe.egg-info\PKG-INFO 
    writing top-level names to MarkupSafe.egg-info\top_level.txt 
    writing dependency_links to MarkupSafe.egg-info\dependency_links.txt 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'MarkupSafe.egg-info\SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'MarkupSafe.egg-info\SOURCES.txt' 
    copying markupsafe\_speedups.c -> build\lib.win32-2.7\markupsafe 
    running build_ext 
    building 'markupsafe._speedups' extension 
    error: [Error 2] The system cannot find the file specified 

是否错误消息意味着什么给谁了? 谢谢

+0

我想你需要的Visual Studio在Windows上构建Python扩展(https://docs.python.org/3/extending/windows的.html)。 – Alexander

+0

谢谢。但我可以在不使用Visual Studio的情况下在全球范围内安装它。 –

+0

真正让我困惑的是,为什么它在virtualenv下无法正常工作,而在全球安装时却能完美工作? –

回答

1

好的。我知道了。我不认为我安装烧瓶的方式有什么问题,正如我在我的问题中已经提到的那样,我可以全局安装它(无需在virtualenv中运行)。 的MarkupSafe包有一个扩展,它是用C实现的,我没有窗户安装SDK我的本地机器上,所以ve_build_ext运行时, ****它总是失败**

的区别是,如果不是(is_pypy或is_jython),它会给出警告,这是我在全局安装时得到的警告;但是,它在virtualenv下运行时会崩溃。所以我非常肯定,在virtualenv下运行时,hasattr(sys,'pypy_version_info')返回true。

有没有人知道“hasattr(sys,'pypy_version_info')”的意思?

# fail safe compilation shamelessly stolen from the simplejson 
# setup.py file. Original author: Bob Ippolito 

is_jython = 'java' in sys.platform 
is_pypy = hasattr(sys, 'pypy_version_info') 


def run_setup(with_binary): 
ext = Extension('markupsafe._speedups', ['markupsafe/_speedups.c']) 
ext_modules = [ext] if with_binary else [] 




def try_building_extension(): 
    try: 
     run_setup(True) 
    except BuildFailed: 
     LINE = '=' * 74 
     BUILD_EXT_WARNING = 'WARNING: The C extension could not be ' \ 
          'compiled, speedups are not enabled.' 
    echo(LINE) 
    echo(BUILD_EXT_WARNING) 
    echo('Failure information, if any, is above.') 
    echo('Retrying the build without the C extension now.') 
    echo() 

    run_setup(False) 

    echo(LINE) 
    echo(BUILD_EXT_WARNING) 
    echo('Plain-Python installation succeeded.') 
    echo(LINE) 

如果不是(is_pypy或is_jython): try_building_extension() 其他: run_setup(假)

+1

我从http://www.lfd.uci.edu/~gohlke/pythonlibs/获得了markupsafe的编译版本,并在virtualenv下本地安装。之后,我可以在我的virtualenv –

+0

中安装烧瓶我在git bash下运行。 只是想出了如何在交互模式下运行它 只需输入:$ python -i –

+0

您应该在此答案中添加一个指向轮胎库的链接并接受它,以便其他人可以查看解决方案。而且,谢谢! – martinthenext

6

昨天我有这个问题。我通过下载MarkupSafe wheel并使用pip进行安装来解决此问题。问题在我头上。我想,为了在生成Speedups文件时抑制错误,需要编译器标志。

1)从上面的链接下载轮子。

2)在Windows上,在与车轮相同的目录中打开一个命令窗口。

3)运行“PIP安装”

+0

这也适用于我。谢谢! – dprothero

+0

您能否详细介绍一下您采取哪些步骤来做到这一点? – d512

+0

我正试图在Windows上安装Jupyter Notebook,并且MarkupSafe是依赖项。关于MarkupSafe的这个错误是当我用'pip'安装Jupyter Notebook时弹出的。我在这里搜索了一个类似的问题,这是唯一对我有用的解决方案。我必须下载由Christoph Gohlke创建的轮子,使用'pip'手动安装它,然后我才能成功安装Jupyter Notebook。谢谢! – rayryeng

1

我今天有这个问题,并能够通过从wheel文件上面手动安装MarkupSafe,每林肯的建议来解决它。您可以下载相应的文件here。有几个可用。我不知道它们之间的区别是什么,但唯一能够在Windows 10上安装的是名为MarkupSafe-0.23-cp27-none-win32.whl的。下载后,我它复制到该目录创建我使用的virtualenv(不知道这是必要的,但是这是我做的),并与PIP安装了它:从该目录

C:\flask-test\venv>pip install MarkupSafe-0.23-cp27-none-win32.whl 

。之后,我回到主目录并安装了Flask

C:\flask-test\venv>cd .. 
C:\flask-test>pip install Flask 

它工作正常。

16

此问题似乎与您的virtualenv中安装的setuptools版本有关。降级到一个较旧的版本为我修复它。

从你的virtualenv:

pip install setuptools==21.2.1 
pip install flask 
+0

这对我来说也是完美无缺的,这个错误似乎是一些语法问题。 – Mahonster

+0

在安装Sphinx时发现类似错误时,同样的修复方法也适用于我。 – Clintonio

2

MarkupSafe的setup.py被打破了我的Win7系统里没有C编译器上。 (我保留一个单独的VM for VC++工作)我这样做是为了让它工作:

pip download MarkupSafe 
mkdir temp 
open MarkupSafe-0.23.tar.gz with 7-zip, extract all to temp 
cd temp 
edit setup.py line 119 to read: if 0: #not (is_pypy or is_jython): 
python setup.py install 

我没有尝试调试setup.py以正常工作。我只是想尝试Flask,因为它应该是轻量级且易于学习的,而官方文档则说它安装在Windows上。也许我应该回到Perl ...

与其他海报不同,MarkupSafe的全局点安装也不适用于我。

这些链接对其它问题的意见/见解: https://github.com/pallets/markupsafe/issues/26 https://github.com/babun/babun/issues/315

+0

Thankyou,经过一系列不同的尝试后,这解决了我的问题 - 我甚至尝试安装各种VC++版本,但没有成功。 –

相关问题