Copy complete virtualenv to another pc

这一生的挚爱 提交于 2019-12-20 12:37:19

问题


I have a virtualenv located at /home/user/virtualenvs/Environment. Now I need this environment at another PC. So I installed virtualenv-clone and used it to clone /Environment. Then I copied it to the other PC via USB. I can activate it with source activate, but when I try to start the python interpreter with sudo ./Environment/bin/python I get

./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected

Executing it without sudo gives me an error telling me that there is an error in the binaries format. But how can this be? I just copied it. Or is there a better way to do this? I can not just use pip freeze because there are some packages in /Environment/lib/python2.7/site-packages/ which I wrote myself and I need to copy them, too. As I understand it pip freeze just creates a list of packages which pip then downloads and installs.


回答1:


Do the following steps on the source machine:

  1. workon [environment_name]
  2. pip freeze > requirements.txt
  3. copy requirements.txt to other PC

On the other PC:

  1. create a virtual environment using mkvirtualenv [environment_name]
  2. workon [environment_name]
  3. pip install -r requirements.txt

You should be done.

Other Resources:

  • How to Copy/Clone a Virtual Environment from Server to Local Machine



回答2:


I think what occurs is that you just copy the symbolic links in the source file to the target machine as binary files(no longer links). You should copy it using rsync -l to copy to keep those links.




回答3:


Usually I use virtualenv to create a new environment, then I go to the environment where I want to copy from, copy all the folders and paste it into the environment folder I just created, but most importantly when asking if you want to replace the Destination files, choose to skip these files. This way you keep your settings. At least for me, this has worked very well. I hope it works for you too.



来源:https://stackoverflow.com/questions/34993200/copy-complete-virtualenv-to-another-pc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!