Wczytanie modułu

0

Zainstalowałem moduł (czy tam pakiet) openpyxl przez pip. Nie potrafię go zaimportować do programu. Moduł mam w C:/Python/Python35-32/Lib/site-packages, a program którzy piszę w C:/Marcin/Python. Czy mógłby mi ktoś powiedzieć, jak to zrobić? Najlepiej tak żebym jeszcze zrozumiał. Będę wdzięczny :)

0

Jak pipem zainstalowałeś openpyxl to:

Python

 
import openpyxl

Informacje o bibliotece:

help(openpyxl)
dir(openpyxl)
0

Niestety, wtedy wyskakuje jakiś długi błąd.

Traceback (most recent call last):
  File "C:\Marcin\Python\test 2.py", line 1, in <module>
    import openpyxl
  File "C:\Marcin\Python\openpyxl\__init__.py", line 28, in <module>
    from openpyxl.workbook import Workbook
  File "C:\Marcin\Python\openpyxl\workbook\__init__.py", line 5, in <module>
    from .workbook import *
  File "C:\Marcin\Python\openpyxl\workbook\workbook.py", line 7, in <module>
    from openpyxl.worksheet import Worksheet
  File "C:\Marcin\Python\openpyxl\worksheet\__init__.py", line 4, in <module>
    from .worksheet import *
  File "C:\Marcin\Python\openpyxl\worksheet\worksheet.py", line 34, in <module>
    from openpyxl.cell import Cell
  File "C:\Marcin\Python\openpyxl\cell\__init__.py", line 4, in <module>
    from .cell import *
  File "C:\Marcin\Python\openpyxl\cell\cell.py", line 30, in <module>
    from openpyxl.utils.datetime  import (
  File "C:\Marcin\Python\openpyxl\utils\datetime.py", line 12, in <module>
    from jdcal import (
ImportError: No module named jdcal
0

zainstaluj jdcal przez "pip install jdcal"

c:\>c:\Python27\Scripts\virtualenv.exe p
New python executable in p\Scripts\python.exe
Installing setuptools, pip...done.

c:\>p\Scripts\activate.bat
(p) c:\>pip list
pip (1.5.6)
setuptools (3.6)

(p) c:\>pip install openpyxl
Downloading/unpacking openpyxl
  Running setup.py (path:c:\p\build\openpyxl\setup.py) egg_info for package open
pyxl

    no previously-included directories found matching 'openpyxl\tests'
    no previously-included directories found matching 'openpyxl\sample'
    no previously-included directories found matching 'openpyxl\benchmarks'
    no previously-included directories found matching 'openpyxl\develop'
    warning: no previously-included files matching 'test_*.py' found under direc
tory 'openpyxl'
    warning: no previously-included files matching 'tests\*.py' found under dire
ctory 'openpyxl'
Downloading/unpacking jdcal (from openpyxl)
  Downloading jdcal-1.2.tar.gz
  Running setup.py (path:c:\p\build\jdcal\setup.py) egg_info for package jdcal

Downloading/unpacking et-xmlfile (from openpyxl)
  Downloading et_xmlfile-1.0.1.tar.gz
  Running setup.py (path:c:\p\build\et-xmlfile\setup.py) egg_info for package et
-xmlfile

Installing collected packages: openpyxl, jdcal, et-xmlfile
  Running setup.py install for openpyxl

    no previously-included directories found matching 'openpyxl\tests'
    no previously-included directories found matching 'openpyxl\sample'
    no previously-included directories found matching 'openpyxl\benchmarks'
    no previously-included directories found matching 'openpyxl\develop'
    warning: no previously-included files matching 'test_*.py' found under direc
tory 'openpyxl'
    warning: no previously-included files matching 'tests\*.py' found under dire
ctory 'openpyxl'
  Running setup.py install for jdcal

  Running setup.py install for et-xmlfile

Successfully installed openpyxl jdcal et-xmlfile
Cleaning up...

(p) c:\>pip list
et-xmlfile (1.0.1)
jdcal (1.2)
openpyxl (2.3.5)
pip (1.5.6)
setuptools (3.6)

(p) c:\>python -c "import openpyxl; print openpyxl"
<module 'openpyxl' from 'c:\p\lib\site-packages\openpyxl\__init__.pyc'>

(p) c:\>pip uninstall jdcal
Uninstalling jdcal:
  c:\p\lib\site-packages\jdcal-1.2-py2.7.egg-info
  c:\p\lib\site-packages\jdcal.py
  c:\p\lib\site-packages\jdcal.pyc
Proceed (y/n)? y
  Successfully uninstalled jdcal

(p) c:\>python -c "import openpyxl; print openpyxl"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\p\lib\site-packages\openpyxl\__init__.py", line 28, in <module>
    from openpyxl.workbook import Workbook
  File "c:\p\lib\site-packages\openpyxl\workbook\__init__.py", line 5, in <modul
e>
    from .workbook import *
  File "c:\p\lib\site-packages\openpyxl\workbook\workbook.py", line 7, in <modul
e>
    from openpyxl.worksheet import Worksheet
  File "c:\p\lib\site-packages\openpyxl\worksheet\__init__.py", line 4, in <modu
le>
    from .worksheet import *
  File "c:\p\lib\site-packages\openpyxl\worksheet\worksheet.py", line 34, in <mo
dule>
    from openpyxl.cell import Cell
  File "c:\p\lib\site-packages\openpyxl\cell\__init__.py", line 4, in <module>
    from .cell import *
  File "c:\p\lib\site-packages\openpyxl\cell\cell.py", line 30, in <module>
    from openpyxl.utils.datetime  import (
  File "c:\p\lib\site-packages\openpyxl\utils\datetime.py", line 12, in <module>

    from jdcal import (
ImportError: No module named jdcal

(p) c:\>pip install jdcal
Downloading/unpacking jdcal
  Downloading jdcal-1.2.tar.gz
  Running setup.py (path:c:\p\build\jdcal\setup.py) egg_info for package jdcal

Installing collected packages: jdcal
  Running setup.py install for jdcal

Successfully installed jdcal
Cleaning up...

(p) c:\>python -c "import openpyxl; print openpyxl"
<module 'openpyxl' from 'c:\p\lib\site-packages\openpyxl\__init__.pyc'>

(p) c:\>pip list
et-xmlfile (1.0.1)
jdcal (1.2)
openpyxl (2.3.5)
pip (1.5.6)
setuptools (3.6)

0

Zainstalowałem jdcal (właściwie to odinstalowałem i zainstalowałem, bo chyba już był) przez pip, ale nadal nie rozumiem jak to włączyć. Pip otwieram przez cmd Windowsa, ale bez wirtualnego środowiska, tylko tak "zwyczajnie", a to virtualenv nie wiem jak otworzyć, bo nie mam takiego pliku. W każdym razie po komendzie pip list mam:

P:\Python\Python35-32\Scripts>pip list
et-xmlfile (1.0.1)
jdcal (1.2)
openpyxl (2.3.5)
pip (8.1.1)
setuptools (20.10.1)
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

Jak wpisuję w cmd 'python -m pip install --upgrade pip', to nic się nie dzieje. No i nadal w IDLE nie mogę otworzyć modułu. Zaplątałem się już całkowicie.

0

Odinstalowałem jdcal, openpyxl, zainstalowałem oba w tej kolejności, no i nadal wyświetla ten sam kod przy imporcie w IDLE... Kilka linijek z folderem i "No module called jdcal".

Nie wiem czy to ważne, że Pythona mam zainstalowanego na innym dysku niż system. Chyba nie?

0

Żeby zaktualizować pip'a systemowego musisz otworzyć cmd z uprawnieniami administratora. Polecam ogólnie korzystać z virtualenva: https://virtualenv.pypa.io/en/stable/
To gdzie python jest zainstalowany nie ma znaczenia. Znaczenie ma to czy ścieżka do plików wykonywalnych jest podana w zmiennych środowiskowych systemu.

0

Chyba już jestem coraz bliżej... Zainstalowałem virtualenv, z tym że nie mogę utworzyć folderu. Jeżeli piszę 'virtualenv p' to:

Using base prefix 'p:\\python\\python35-32'
New python executable in P:\Python\Python35-32\Scripts\p\Scripts\python.exe
ERROR: The executable P:\Python\Python35-32\Scripts\p\Scripts\python.exe is not functioning
ERROR: It thinks sys.prefix is 'p:\\python\\python35-32\\scripts' (should be 'p:\\python\\python35-32\\scripts\\p')
ERROR: virtualenv is not compatible with this system or executable
Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versi
ons of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.

Na googlach coś tam radzą, żeby dopisać wersję Pythona 'virtualenv -p python3.5 p':

P:\Python\Python35-32\Scripts>virtualenv -p python3.5 p
The path python3.5 (from --python=python3.5) does not exist

Co jeszcze robię źle? ;)

0

Czy mógłby mi ktoś jeszcze pomóc? :)

0

Trochę nie wiem dlaczego tak się dzieje, ale żeby coś Ci pomóc to podaj pełną ścieżkę do pliku wykonywalnego python3.5, czyli coś takiego:

virtualenv -p "C:\Program Files (x86)\Python 3.5\python.exe" p

Polecenie stworzenia virtualenva wykonaj w innym folderze niż to robisz obecnie, bo virtualenv utworzy Tobie folder "p" w katalogu P:\Python\Python35-32\Scripts, a chyba tego nie chcesz :) Najlepiej virtualenva stworzyć gdzieś w folderze projektu, który zamierzasz pisać.

0

A jak stworzyć venv w innym folderze? Bo domyślnie tworzy się w Scritps w folderze pythona. To co jest w cudzysłowie, to zawsze będzie to samo, czyli ścieżka do samego pythona, tak?
Jeżeli wpisuję z pełną ścieżką do pythona to błąd jest ten sam jak powyżej (te trzy linijki z ERROR), plus pojawia się okienko z "nie można uruchomić programu ponieważ na komputerze nie znaleziono vcruntime140.dll", no i tworzy się jakiś folder w Scripts nazwany p, tylko nie ma w nim activate.bat ani pip... Wcześniej zresztą było tak samo, okienko i folder, zapomniałem wspomnieć... ;/

0

Dobra, udało mi się stworzyć venv, zainstalować w nim openpyxl... Jak teraz należy wpisać komendę w IDLE, żeby zaimportować openpyxl? Zwykłe "import openpyxl" nadal nie działa. Trzeba jakoś otworzyć IDLE przez venv?

1 użytkowników online, w tym zalogowanych: 0, gości: 1