andy-wyx commited on
Commit
432e6ee
·
1 Parent(s): 7896f53

feat:conditional pkg install

Browse files
Files changed (1) hide show
  1. app.py +19 -26
app.py CHANGED
@@ -2,27 +2,17 @@
2
  import subprocess
3
  import os
4
  import sys
5
- import pkg_resources
6
- '''
7
- env_name = os.path.basename(sys.prefix)
8
- if env_name == 'fossil':
9
- subprocess.call('pip install tensorflow==2.9'.split())
10
- subprocess.call('pip install keras==2.9'.split())
11
- subprocess.call('pip install git+https://github.com/facebookresearch/segment-anything.git'.split())
12
- subprocess.call('pip install opencv-python-headless==4.5.5.64'.split())
13
- subprocess.call('pip install git+https://github.com/cocodataset/panopticapi.git'.split())
14
- subprocess.call('pip install python-dotenv'.split())
15
- subprocess.call('pip install torch torchvision '.split())
16
- subprocess.call('pip install xplique'.split())
17
- subprocess.call('pip install gradio'.split())
18
- else:
19
- print("Please use venv named 'fossil' in case pkgs installed to other unexpected envs or locations.")
20
 
21
  def is_pkg_installed(pkg_name):
22
- installed_pkgs = {pkg.key for pkg in pkg_resources.working_set}
23
- return pkg_name.lower() in installed_pkgs
24
-
 
 
25
  packages_to_install = [
 
 
26
  ('tensorflow', '2.9'),
27
  ('keras', '2.9'),
28
  ('opencv-python-headless', '4.5.5.64'),
@@ -32,17 +22,20 @@ packages_to_install = [
32
  ('xplique', None),
33
  ]
34
 
35
- for package, version in packages_to_install:
36
- package_spec = f"{package}=={version}" if version else package
37
- if not is_pkg_installed(package):
38
- print(f"Installing {package_spec}...")
39
- subprocess.call(f"pip install {package_spec}".split())
40
- else:
41
- print(f"{package_spec} is already installed.")
 
 
 
42
 
43
 
44
  #print(os.getenv('SYSTEM'))
45
- '''
46
  '''
47
  if os.getenv('SYSTEM') == 'spaces':
48
  subprocess.call('pip install tensorflow==2.9'.split())
 
2
  import subprocess
3
  import os
4
  import sys
5
+ import importlib.metadata
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  def is_pkg_installed(pkg_name):
8
+ try:
9
+ importlib.metadata.distribution(pkg_name)
10
+ return True
11
+ except importlib.metadata.PackageNotFoundError:
12
+ return False
13
  packages_to_install = [
14
+ ('gradio',None),
15
+ ('numpy',None),
16
  ('tensorflow', '2.9'),
17
  ('keras', '2.9'),
18
  ('opencv-python-headless', '4.5.5.64'),
 
22
  ('xplique', None),
23
  ]
24
 
25
+ env_name = os.path.basename(sys.prefix)
26
+ if env_name == 'fossil': # in case pkgs installed to unexpected env during local dev
27
+ for package, version in packages_to_install:
28
+ package_spec = f"{package}=={version}" if version else package
29
+ if not is_pkg_installed(package):
30
+ subprocess.call(f"pip install {package_spec}".split())
31
+ else:
32
+ print(f"{package_spec} is already installed.")
33
+ else:
34
+ print("Please use venv named 'fossil' in case pkgs installed to other unexpected envs or locations.")
35
 
36
 
37
  #print(os.getenv('SYSTEM'))
38
+
39
  '''
40
  if os.getenv('SYSTEM') == 'spaces':
41
  subprocess.call('pip install tensorflow==2.9'.split())