Контекст
Я создаю веб-сайт WordPress со стеком Roots .Он создает виртуальную машину на моем компьютере через Vagrant, Ansible и VirtualBox.
Проблема
Во время установки я получаю эту ошибку ERROR! Unexpected Exception, this is probably a bug: No module named six
Понижение до 2,3 (sudo pip install ansible==2.3.0.0
) устраняет эту ошибку,но я не могу запустить определенные команды для новых проектов.
Пример кода
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'bento/ubuntu-16.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-16.04' is up to date...
==> default: Setting the name of the VM: example.test
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 5.0.26
default: VirtualBox Version: 5.1
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
==> default: Mounting NFS shared folders...
==> default: Mounting shared folders...
default: /vagrant => /home/myuser/Sites/example.com/trellis
==> default: Checking for bindfs in VM...
default: Package manager detected: apt-get
default: Fuse kernel module is installed
default: Fuse kernel module is loaded
==> default: Bindfs seems to not be installed on the virtual machine, installing now
default: Bindfs 1.12.6 is installed
==> default: Machine is ready to use bindfs!
==> default: Creating bind mounts after synced_folders...
default: /vagrant-nfs-example.test => /srv/www/example.test/current
default: /ansible-nfs => /home/vagrant/trellis
default: /home/vagrant/trellis/bin => /home/vagrant/trellis/bin
==> default: [vagrant-hostmanager:guests] Updating hosts file on active guest virtual machines...
==> default: [vagrant-hostmanager:host] Updating hosts file on your workstation (password may be required)...
==> default: Running provisioner: ansible...
Vagrant has automatically selected the compatibility mode '2.0'
according to the Ansible version installed (2.4.0.0).
Alternatively, the compatibility mode can be specified in your Vagrantfile:
https://www.vagrantup.com/docs/provisioning/ansible_common.html#compatibility_mode
default: Running ansible-galaxy...
- changing role composer from 1.5.0 to 1.5.0
- downloading role 'composer', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-composer/archive/1.5.0.tar.gz
- extracting composer to /home/myuser/Sites/example.com/trellis/vendor/roles/composer
- composer (1.5.0) was installed successfully
- changing role ntp from 1.3.0 to 1.3.0
- downloading role 'ntp', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-ntp/archive/1.3.0.tar.gz
- extracting ntp to /home/myuser/Sites/example.com/trellis/vendor/roles/ntp
- ntp (1.3.0) was installed successfully
- changing role logrotate from e7a498d to e7a498d
- downloading role 'logrotate', owned by nickhammond
- downloading role from https://github.com/nickhammond/ansible-logrotate/archive/e7a498d.tar.gz
- extracting logrotate to /home/myuser/Sites/example.com/trellis/vendor/roles/logrotate
- logrotate (e7a498d) was installed successfully
- changing role swapfile from 0.4 to 0.4
- downloading role 'swapfile', owned by kamaln7
- downloading role from https://github.com/kamaln7/ansible-swapfile/archive/0.4.tar.gz
- extracting swapfile to /home/myuser/Sites/example.com/trellis/vendor/roles/swapfile
- swapfile (0.4) was installed successfully
- changing role geerlingguy.daemonize from 1.1.1 to 1.1.1
- downloading role 'daemonize', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-daemonize/archive/1.1.1.tar.gz
- extracting geerlingguy.daemonize to /home/myuser/Sites/example.com/trellis/vendor/roles/geerlingguy.daemonize
- geerlingguy.daemonize (1.1.1) was installed successfully
- changing role mailhog from 2.1.0 to 2.1.0
- downloading role 'mailhog', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-mailhog/archive/2.1.0.tar.gz
- extracting mailhog to /home/myuser/Sites/example.com/trellis/vendor/roles/mailhog
- mailhog (2.1.0) was installed successfully
[WARNING]: - dependency geerlingguy.daemonize from role mailhog differs from
already installed version (1.1.1), skipping
default: Running ansible-playbook...
[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use
'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions.
This feature will be removed in a future release. Deprecation warnings can be
disabled by setting deprecation_warnings=False in ansible.cfg.
ERROR! Unexpected Exception, this is probably a bug: No module named six
to see the full traceback, use -vvv
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
myser@ubuntu:~/Sites/example.com/trellis$ sudo pip install --ignore-installed six
The directory '/home/myuser/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/myuser/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting six
Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six-1.11.0
myuser@ubuntu:~/Sites/example.com/trellis$ sudo -H pip install --ignore-installed six
Collecting six
Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six-1.11.0
Отладка - На моем компьютере с Ubuntu 17.10 установлен Ansible 2.3.x.- which pip
приводит к /usr/local/bin/pip
- which python
приводит к /usr/bin/python
- pip --version
приводит к pip 10.0.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
- python --version
приводит к Python 2.7.14
Попытка решения
Я прочитал этот выпуск GitHub в официальном репозитории Ansible, но решения не было.И это хак , не совсем правильное решение, и я уверен, что в моем случае это не сработает, поскольку оно настолько интегрировано со стеком Roots.
- Iпопробовал это предложение из
sudo easy_install pip
, которое было успешно выполнено, но не решило проблему. - Я проверил дубликаты Python и, насколько я мог видетьбыла только одна установка.
- Я подтвердил, что у меня установлена последняя версия PIP с
sudo -H pip install six --upgrade
. - Я также пытался
python -m pip install six
, что привело к Requirement already satisfied: six in /usr/local/lib/python2.7/dist-packages (1.11.0)
.
- Этот по сути дублирующий вопрос.Как было это .И это .А-а-а это .
- Большинство это , это и это прямо с форумов Roots Trellis, но они не представили никаких новых решений, кроме того, что я сварилвыше