Skip to content

Commit b092509

Browse files
authored
Merge pull request #145 from rackerlabs/py3_pkg
Add support for Python3 Virtualenvironments
2 parents 64c532a + c7fdb4e commit b092509

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

lambda_uploader/package.py

+27-9
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
import glob
1516
import os
1617
import shutil
1718
import zipfile
@@ -231,18 +232,35 @@ def package(self, ignore=None):
231232
LOG.info('Copying site packages')
232233

233234
if hasattr(self, '_pkg_venv') and self._pkg_venv:
234-
site_packages = 'lib/python2.7/site-packages'
235-
lib64_site_packages = 'lib64/python2.7/site-packages'
235+
site_packages = None
236+
lib64_site_packages = None
236237
if sys.platform == 'win32' or sys.platform == 'cygwin':
237238
lib64_site_packages = 'lib64\\site-packages'
238239
site_packages = 'lib\\site-packages'
239-
240-
utils.copy_tree(os.path.join(self._pkg_venv, site_packages),
241-
package)
242-
lib64_path = os.path.join(self._pkg_venv, lib64_site_packages)
243-
if not os.path.islink(lib64_path):
244-
LOG.info('Copying lib64 site packages')
245-
utils.copy_tree(lib64_path, package)
240+
else:
241+
# Look for the site packages
242+
lib_site_list = glob.glob(os.path.join(
243+
self._pkg_venv, 'lib/python*/site-packages'))
244+
if lib_site_list:
245+
site_packages = lib_site_list[0]
246+
else:
247+
LOG.debug("no lib site packages found")
248+
249+
lib64_site_list = glob.glob(os.path.join(
250+
self._pkg_venv, 'lib64/python*/site-packages'))
251+
if lib64_site_list:
252+
lib64_site_packages = lib64_site_list[0]
253+
else:
254+
LOG.debug("no lib64 site packages found")
255+
256+
if site_packages:
257+
utils.copy_tree(os.path.join(self._pkg_venv, site_packages),
258+
package)
259+
if lib64_site_packages:
260+
lib64_path = os.path.join(self._pkg_venv, lib64_site_packages)
261+
if not os.path.islink(lib64_path):
262+
LOG.info('Copying lib64 site packages')
263+
utils.copy_tree(lib64_path, package)
246264

247265
# Append the temp workspace to the ignore list:
248266
ignore.append(r"^%s/.*" % re.escape(TEMP_WORKSPACE_NAME))

0 commit comments

Comments
 (0)