mirror of https://github.com/explosion/spaCy.git
Remove --no-deps from default pip args on download
Add warning if user is executing spaCy without having it installed and add --no-deps to prevent the package from being redownloaded
This commit is contained in:
parent
84c65f9455
commit
a84025d70b
|
@ -28,6 +28,16 @@ def download(model, direct=False, *pip_args):
|
||||||
can be shortcut, model name or, if --direct flag is set, full model name
|
can be shortcut, model name or, if --direct flag is set, full model name
|
||||||
with version. For direct downloads, the compatibility check will be skipped.
|
with version. For direct downloads, the compatibility check will be skipped.
|
||||||
"""
|
"""
|
||||||
|
if not require_package("spacy") and "--no-deps" not in pip_args:
|
||||||
|
msg.warn(
|
||||||
|
"Skipping model package dependencies and setting `--no-deps`. "
|
||||||
|
"You don't seem to have the spaCy package itself installed "
|
||||||
|
"(maybe because you've built from source?), so installing the "
|
||||||
|
"model dependencies would cause spaCy to be downloaded, which "
|
||||||
|
"probably isn't what you want. If the model package has other "
|
||||||
|
"dependencies, you'll have to install them manually."
|
||||||
|
)
|
||||||
|
pip_args = pip_args + ("--no-deps",)
|
||||||
dl_tpl = "{m}-{v}/{m}-{v}.tar.gz#egg={m}=={v}"
|
dl_tpl = "{m}-{v}/{m}-{v}.tar.gz#egg={m}=={v}"
|
||||||
if direct:
|
if direct:
|
||||||
components = model.split("-")
|
components = model.split("-")
|
||||||
|
@ -72,12 +82,15 @@ def download(model, direct=False, *pip_args):
|
||||||
# is_package check currently fails, because pkg_resources.working_set
|
# is_package check currently fails, because pkg_resources.working_set
|
||||||
# is not refreshed automatically (see #3923). We're trying to work
|
# is not refreshed automatically (see #3923). We're trying to work
|
||||||
# around this here be requiring the package explicitly.
|
# around this here be requiring the package explicitly.
|
||||||
try:
|
require_package(model_name)
|
||||||
pkg_resources.working_set.require(model_name)
|
|
||||||
except: # noqa: E722
|
|
||||||
# Maybe it's possible to remove this – mostly worried about cross-
|
def require_package(name):
|
||||||
# platform and cross-Python copmpatibility here
|
try:
|
||||||
pass
|
pkg_resources.working_set.require(name)
|
||||||
|
return True
|
||||||
|
except: # noqa: E722
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def get_json(url, desc):
|
def get_json(url, desc):
|
||||||
|
@ -117,7 +130,7 @@ def get_version(model, comp):
|
||||||
|
|
||||||
def download_model(filename, user_pip_args=None):
|
def download_model(filename, user_pip_args=None):
|
||||||
download_url = about.__download_url__ + "/" + filename
|
download_url = about.__download_url__ + "/" + filename
|
||||||
pip_args = ["--no-cache-dir", "--no-deps"]
|
pip_args = ["--no-cache-dir"]
|
||||||
if user_pip_args:
|
if user_pip_args:
|
||||||
pip_args.extend(user_pip_args)
|
pip_args.extend(user_pip_args)
|
||||||
cmd = [sys.executable, "-m", "pip", "install"] + pip_args + [download_url]
|
cmd = [sys.executable, "-m", "pip", "install"] + pip_args + [download_url]
|
||||||
|
|
Loading…
Reference in New Issue