1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-08-10 05:22:59 +03:00

Install wheel and cython on fbcode_builder venv environments

Summary:
This is an update to the fbcode_builder codebase to allow setting up the python virtualenv with python dependencies installed. I've included wheel and cython (with a pinned version to 0.28.6 which is the only version that works with thriftpy3 at the moment, due to https://github.com/cython/cython/issues/2985) as standard packages since these are required by some of our top-level dependencies (folly and thrift)

As far as I know, there are no other projects that use PYTHON_VENV at the moment except LogDevice so the impact should be minimal.

Reviewed By: lucaspmelo

Differential Revision: D18758383

fbshipit-source-id: 264941311c5e3a19dc4ef2bb78c9a1baa34dfd8c
This commit is contained in:
Ahmed Soliman
2019-12-02 07:36:12 -08:00
committed by Facebook Github Bot
parent 492607c3e8
commit 771cc9afb7
3 changed files with 27 additions and 14 deletions

View File

@@ -183,6 +183,12 @@ class FBCodeBuilder(object):
'''
raise NotImplementedError
def python_deps(self):
return [
'wheel',
'cython==0.28.6',
]
def debian_deps(self):
return [
'autoconf-archive',
@@ -252,18 +258,23 @@ class FBCodeBuilder(object):
return self.step('Install packages for Debian-based OS', actions)
def create_python_venv(self):
action = []
actions = []
if self.option("PYTHON_VENV", "OFF") == "ON":
action = self.run(ShellQuoted("python3 -m venv {p}").format(
p=path_join(self.option('prefix'), "venv")))
return(action)
actions.append(self.run(ShellQuoted("python3 -m venv {p}").format(
p=path_join(self.option('prefix'), "venv"))))
return(actions)
def python_venv(self):
action = []
actions = []
if self.option("PYTHON_VENV", "OFF") == "ON":
action = ShellQuoted("source {p}").format(
p=path_join(self.option('prefix'), "venv", "bin", "activate"))
return(action)
actions.append(ShellQuoted("source {p}").format(
p=path_join(self.option('prefix'), "venv", "bin", "activate")))
actions.append(self.run(
ShellQuoted("python3 -m pip install {deps}").format(
deps=shell_join(' ', (ShellQuoted(dep) for dep in
self.python_deps())))))
return(actions)
def debian_ccache_setup_steps(self):
return [] # It's ok to ship a renderer without ccache support.