[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guix import error + New: setting up a jupyterlab environment
From: |
Zelphir Kaltstahl |
Subject: |
Re: guix import error + New: setting up a jupyterlab environment |
Date: |
Sat, 24 Oct 2020 21:42:13 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Hello Efraim!
On 10/21/20 9:18 AM, Efraim Flashner wrote:
> On Mon, Oct 19, 2020 at 11:12:35PM +0200, Zelphir Kaltstahl wrote:
>> Meanwhile I have managed to run the jupyterlab-server tests, as
>> described in more details here:
>> https://github.com/jupyterlab/jupyterlab_server/issues/128
>>
>> Indeed, in version 1.2.0 the tests fail the same way they fail when I
>> try to create my environment. This means the next thing to fix would
>> probably be to use another version of jupyterlab-server. 1.2.0 is a tag
>> in the jupyterlab-server repository, which _seems_ to be the latest
>> "stable" version, before a lot of alpha, beta, and release-candidate
>> versions follow.
>>
>> I guess I could switch the commit in my `jupyterlab.scm` file to point
>> to a different one?
>>
>> I can change the version to `2.0.0rc1`, but I do not know how the
>> checksum is calculated. The checksum is shorter than what I see on
>> simply PyPI:
>>
>> https://files.pythonhosted.org/packages/79/43/5249be5ee741a93f3fa60823caf9a276cadc3103dae16d6e36cc534fefd8/jupyterlab_server-2.0.0rc1.tar.gz#sha256=733b149c5ab8e50ea5f2897c323047257060e7bf2dc0fa88663181427bec605d
>>
>> and base32 should only make it longer, not shorter.
>>
>> Can you explain how to switch a version manually and calculate the
>> checksum to match another version?
> For a tarball like the one at pythonhosted you'd download the file and
> then run 'guix hash the-file'. If you're using a source code repository
> then from the top level of the repo you'd run 'guix hash --exclude-vcs
> --recursive .', or 'guix hash -rx .' for short. The hash layout that
> Guix uses is the sha256 of the tarball base32 encoded, but with a change
> in the letters used.
>
> For python packages you can specify a version number, so in this case
> it'd be 'guix import pypi jupyterlab_server/2.0.0rc1'. Some other
> importers us the '@' symbol to specify version number and I think some
> don't support using other versions at all.
>
> I don't know how compatible different major versions of
> jupyterlab-server are with each other, so I'd stick with 1.2.0 for now.
This means however, that the check phase will fail, because of the
failing tests in the jupyterlab_server repository on version 1.2.0.
Unless there is a way to disable running those specific tests, I guess
this means, that only getting the tests to pass in the jupyterlab_server
repository will solve the problem?
>> Regards,
>> Zelphir
>>
>> On 10/19/20 8:19 PM, Zelphir Kaltstahl wrote:
>>> Hello Efraim,
>>>
>>> Thanks for your patience! It seems with that I am getting quite far
>>> (at least it feels like making progress, or even being close to have a
>>> working environment), up to the "check phase". There some tests
>>> failing in the "check phase". Here is what I am getting now,
>>> regardless of whether I stick ("python-ipykernel" ,python-ipykernel)
>>> in the native inputs or propagated inputs:
>>>
>>> ~~~~START~~~~
>>> running install_egg_info
>>> Copying jupyterlab_server.egg-info to
>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server-1.2.0-py3.8.egg-info
>>> running install_scripts
>>> phase `install' succeeded after 0.3 seconds
>>> starting phase `wrap'
>>> find-files:
>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/bin:
>>> No such file or directory
>>> find-files:
>>> /gnu/store/2h44ldpcqqd0q7hqpbcqdavcnbjsibfb-python-jupyterlab-server-1.2.0/sbin:
>>> No such file or directory
>>> phase `wrap' succeeded after 0.0 seconds
>>> starting phase `check'
>>> running "python setup.py" with command "test" and parameters ()
>>> running test
>>> running egg_info
>>> writing jupyterlab_server.egg-info/PKG-INFO
>>> writing dependency_links to jupyterlab_server.egg-info/dependency_links.txt
>>> writing requirements to jupyterlab_server.egg-info/requires.txt
>>> writing top-level names to jupyterlab_server.egg-info/top_level.txt
>>> reading manifest file 'jupyterlab_server.egg-info/SOURCES.txt'
>>> reading manifest template 'MANIFEST.in'
>>> warning: no previously-included files matching '*~' found anywhere in
>>> distribution
>>> warning: no previously-included files matching '*.pyc' found anywhere in
>>> distribution
>>> warning: no previously-included files matching '*.pyo' found anywhere in
>>> distribution
>>> warning: no previously-included files matching '.git' found anywhere in
>>> distribution
>>> warning: no previously-included files matching '.ipynb_checkpoints' found
>>> anywhere in distribution
>>> writing manifest file 'jupyterlab_server.egg-info/SOURCES.txt'
>>> running build_ext
>>> test_get (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ...
>>> ERROR
>>> test_get_bad (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ... ERROR
>>> test_listing (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ... ERROR
>>> test_patch (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ...
>>> ERROR
>>> test_patch_bad_data
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ... ERROR
>>> test_patch_wrong_id
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest) ... ERROR
>>> test_bad_put
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR
>>> test_blank_put
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR
>>> test_delete (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ... ERROR
>>> test_get (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ... ERROR
>>> test_listing
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest) ... ERROR
>>> test_put (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ... ERROR
>>>
>>> ======================================================================
>>> ERROR: test_get (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_get_bad
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_listing
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_patch
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_patch_bad_data
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_patch_wrong_id
>>> (jupyterlab_server.tests.test_settings_api.SettingsAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_settings_api.py",
>>> line 31, in setUp
>>> dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
>>> AttributeError: 'SettingsAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_bad_put
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_blank_put
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_delete
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_get
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_listing
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ======================================================================
>>> ERROR: test_put
>>> (jupyterlab_server.tests.test_workspaces_api.WorkspacesAPITest)
>>> ----------------------------------------------------------------------
>>> Traceback (most recent call last):
>>> File
>>> "/tmp/guix-build-python-jupyterlab-server-1.2.0.drv-0/jupyterlab_server-1.2.0/jupyterlab_server/tests/test_workspaces_api.py",
>>> line 34, in setUp
>>> dst = os.path.join(self.lab_config.workspaces_dir, item)
>>> AttributeError: 'WorkspacesAPITest' object has no attribute 'lab_config'
>>>
>>> ----------------------------------------------------------------------
>>> Ran 12 tests in 0.001s
>>>
>>> FAILED (errors=12)
>>> Test failed: <unittest.runner.TextTestResult run=12 errors=12 failures=0>
>>> error: Test failed: <unittest.runner.TextTestResult run=12 errors=12
>>> failures=0>
>>> command "python" "-c" "import setuptools,
>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open',
>>> open)(__file__);code=f.read().replace('\\r\\n',
>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with
>>> status 1
>>> ~~~~~END~~~~~
>>>
>>> I have some thoughts about this:
>>>
>>> The Python error does not really tell me what is wrong. I don't know
>>> why the `WorkspacesAPITest` does not have an attribute named `lab_config`.
>>>
>>> One can see, that those are all API tests. Since there were problems
>>> in the previous step with network, perhaps it is a network thing here
>>> as well? (Is network, even if localhost for testing, available in the
>>> "check phase"?)
>>>
>>> It could also simply be, that some PyPI package has failing tests. I
>>> don't know how one could then skip such tests.
>>>
>>> I guess I will summarize everything in the end and put it in a
>>> repository as a kind of "guide", so that others can use it or learn
>>> from the process.
>>>
>>> Regards,
>>> Zelphir
>>>
>>> On 10/19/20 6:54 PM, Efraim Flashner wrote:
>>>> It looks like you need to add python-ipykernel to native-inputs.
>>>> Unless it's needed to run the program and not just for the test
>>>> suite, in which case it should go in propagated-inputs. There's no
>>>> network available in the build environment so it can't retrieve
>>>> ipykernel while building.
>>>>
>>>>
>>>> On October 19, 2020 2:31:53 PM UTC, Zelphir Kaltstahl
>>>> <zelphirkaltstahl@posteo.de> wrote:
>>>>
>>>> Hello Efraim!
>>>>
>>>> Thank you! Your idea of replacing "-" with "_" seems to partially
>>>> help:
>>>>
>>>> The package is downloaded and byte compiled. However, afterwards
>>>> there is a problem, when it tries to copy the byte-compiled files
>>>> in the "wrap phase" (comments inserted in some places):
>>>>
>>>> ~~~~START~~~~
>>>> ### ... a lot of output before this ...
>>>>
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/__init__.py
>>>> to __init__.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/_version.py
>>>> to _version.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/app.py
>>>> to app.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/handlers.py
>>>> to handlers.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/listings_handler.py
>>>> to listings_handler.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/process.py
>>>> to process.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/process_app.py
>>>> to process_app.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/server.py
>>>> to server.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/servertest.py
>>>> to servertest.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/settings_handler.py
>>>> to settings_handler.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/themes_handler.py
>>>> to themes_handler.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/workspaces_handler.py
>>>> to workspaces_handler.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/__init__.py
>>>> to __init__.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/test_settings_api.py
>>>> to test_settings_api.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/test_workspaces_api.py
>>>> to test_workspaces_api.cpython-38.pyc
>>>> byte-compiling
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server/tests/utils.py
>>>> to utils.cpython-38.pyc
>>>>
>>>> ### ... seems byte-compiling went without problems, but not comes the
>>>> problem ...
>>>>
>>>> running install_egg_info
>>>> Copying jupyterlab_server.egg-info to
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/lib/python3.8/site-packages/jupyterlab_server-1.2.0-py3.8.egg-info
>>>> running install_scripts
>>>> phase `install' succeeded after 0.3 seconds
>>>> starting phase `wrap'
>>>> find-files:
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/bin:
>>>> No such file or directory
>>>> find-files:
>>>> /gnu/store/yr7q21bws1xgx3p2dy9cfdiknjpsajm6-python-jupyterlab-server-1.2.0/sbin:
>>>> No such file or directory
>>>> phase `wrap' succeeded after 0.0 seconds
>>>> starting phase `check'
>>>> running "python setup.py" with command "test" and parameters ()
>>>> running test
>>>> Searching for ipykernel
>>>> Reading https://pypi.org/simple/ipykernel/
>>>> Download error on https://pypi.org/simple/ipykernel/: [Errno -2] Name
>>>> or service not known -- Some packages may not be found!
>>>> Couldn't find index page for 'ipykernel' (maybe misspelled?)
>>>> Scanning index of all packages (this may take a while)
>>>> Reading https://pypi.org/simple/
>>>> Download error on https://pypi.org/simple/: [Errno -2] Name or service
>>>> not known -- Some packages may not be found!
>>>> No local packages or working download links found for ipykernel
>>>> error: Could not find suitable distribution for
>>>> Requirement.parse('ipykernel')
>>>> command "python" "-c" "import setuptools,
>>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open',
>>>> open)(__file__);code=f.read().replace('\\r\\n',
>>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with
>>>> status 1
>>>> ~~~~~END~~~~~
>>>>
>>>> So it seems, that while the download URL is corrected, there is
>>>> another place, where Guix has an error now, resulting in a final
>>>> error shown in command line:
>>>>
>>>> ~~~~START~~~~
>>>> $ guix time-machine --channels=channels.scm -- environment
>>>> --manifest=manifest.scm --load=jupyterlab.scm
>>>> Updating channel 'guix' from Git repository at
>>>> 'https://git.savannah.gnu.org/git/guix.git'...
>>>> substitute: updating substitutes from 'https://ci.guix.gnu.org'...
>>>> 100.0%
>>>> The following derivations will be built:
>>>>
>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv
>>>>
>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv
>>>>
>>>> /gnu/store/32a28hd7aainwn0hfsnf3blh8prmfz61-jupyterlab_server-1.2.0.tar.gz.drv
>>>>
>>>> 3,9 MB will be downloaded
>>>> downloading from
>>>> https://ci.guix.gnu.org/nar/lzip/54kpl9psx16jwic4gpnjwh44kim04wlk-python-notebook-5.7.4
>>>> ...
>>>> python-notebook-5.7.4 3.7MiB
>>>>
>>>>
>>>> 5.1MiB/s 00:01 [##################] 100.0%
>>>>
>>>> building
>>>> /gnu/store/32a28hd7aainwn0hfsnf3blh8prmfz61-jupyterlab_server-1.2.0.tar.gz.drv...
>>>> downloading from
>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab_server/jupyterlab_server-1.2.0.tar.gz
>>>> ...
>>>> building
>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv...
>>>> building
>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv...
>>>> \ 'check' phasebuilder for
>>>> `/gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv'
>>>> failed with exit code 1
>>>> build of
>>>> /gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv
>>>> failed
>>>> View build log at
>>>> '/var/log/guix/drvs/96/xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv.bz2'.
>>>> guix environment: error: build of
>>>> `/gnu/store/96xf5mrg134mcsp01b0m1qs1lxkb401a-python-jupyterlab-server-1.2.0.drv'
>>>> failed
>>>> ~~~~~END~~~~~
>>>>
>>>> Apparently ipykernel is not found, but when I visit
>>>> https://pypi.org/simple/ipykernel/, I see packages there.
>>>>
>>>> From the logs:
>>>>
>>>> ~~~~START~~~~
>>>> Download error on https://pypi.org/simple/ipykernel/: [Errno -2] Name
>>>> or service not known -- Some packages may not be found!
>>>> Couldn't find index page for 'ipykernel' (maybe misspelled?)
>>>> ~~~~~END~~~~~
>>>>
>>>> Do I need to add another input in my `jupyterlab.scm`? (How?) Or
>>>> perhaps I need to create a separate `ipykernel.scm` which
>>>> contains the output of `guix import pypi --recursive ipykernel`?
>>>>
>>>> However, it somehow seems to fail for PyPI simple in general
>>>> (from the logs again):
>>>>
>>>> ~~~~START~~~~
>>>> Reading https://pypi.org/simple/
>>>> Download error on https://pypi.org/simple/: [Errno -2] Name or service
>>>> not known -- Some packages may not be found!
>>>> No local packages or working download links found for ipykernel
>>>> error: Could not find suitable distribution for
>>>> Requirement.parse('ipykernel')
>>>> command "python" "-c" "import setuptools,
>>>> tokenize;__file__='setup.py';f=getattr(tokenize, 'open',
>>>> open)(__file__);code=f.read().replace('\\r\\n',
>>>> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with
>>>> status 1
>>>> ~~~~~END~~~~~
>>>>
>>>> Thanks,
>>>> Zelphir
>>>>
>>>>
>>>> On 10/18/20 6:35 PM, Efraim Flashner wrote:
>>>>> On Sun, Oct 18, 2020 at 01:55:49PM +0200, Zelphir Kaltstahl wrote:
>>>>>> Hello Guix Users, hello Zimoun and Tobias!
>>>>>>
>>>>>> Thanks for your information regarding the importer syntax thing.
>>>>>>
>>>>>> I continued trying to get a jupyterlab environment today.
>>>>>>
>>>>>> Here is what I did so far:
>>>>>>
>>>>>> (1) Create my manifest file:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> (specifications->manifest
>>>>>> '("python"))
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> (2) Create my channels file:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ guix describe --format=channels > channels.scm
>>>>>> $ cat channels.scm
>>>>>> (list (channel
>>>>>> (name 'guix)
>>>>>> (url "https://git.savannah.gnu.org/git/guix.git")
>>>>>> (commit
>>>>>> "6ca673b30dac281ba27a8dac242c0ac83e5e354b")
>>>>>> (introduction
>>>>>> (make-channel-introduction
>>>>>> "9edb3f66fd807b096b48283debdcddccfea34bad"
>>>>>> (openpgp-fingerprint
>>>>>> "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A
>>>>>> 54FA")))))
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> (3) Create my jupyterlab PyPI import file, this time around using the
>>>>>> "/" instead of "@" for specifying the version:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ guix import pypi --recursive jupyterlab/2.1.5 > jupyterlab.scm
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> (4) Add missing import expressions and add output expression at the
>>>>>> end:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> ;; add module imports
>>>>>> (use-modules
>>>>>> (guix packages)
>>>>>> (guix download)
>>>>>> (guix build-system python)
>>>>>> ((guix licenses) #:prefix license:)
>>>>>> ;; use `guix environment --ad-hoc python-jinja2 -- guix package -A
>>>>>> python-jinja2` to find the location of python-jinja2, which is
>>>>>> gnu/packages/python-xyz.scm
>>>>> This can be just 'guix package -A python-jinja2', no need for the
>>>>> environment.
>>>>>
>>>>>> (gnu packages python-xyz)
>>>>>> ;; for python-tornado
>>>>>> (gnu packages python-web)
>>>>>> ;; for python-pytest
>>>>>> (gnu packages check))
>>>>>>
>>>>>> ;; QUESTION: Why are those required packages not imported by guix
>>>>>> automatically?
>>>>>> ;; QUESTION: Why are the manually imported packages not actually in
>>>>>> files with their own name, but instead jinja2 -> python-xyz, tornado ->
>>>>>> python-web, and pytest -> check?
>>>>>> ;; QUESTION: Is my process of finding the files in which the
>>>>>> packages are correct or just working by chance?
>>>>>>
>>>>>> (define-public python-jupyterlab-server
>>>>>> (package
>>>>>> (name "python-jupyterlab-server")
>>>>>> (version "1.2.0")
>>>>>> (source
>>>>>> (origin
>>>>>> (method url-fetch)
>>>>>> (uri (pypi-uri "jupyterlab-server" version))
>>>>>> (sha256
>>>>>> (base32
>>>>>>
>>>>>> "132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal"))))
>>>>>> (build-system python-build-system)
>>>>>> (propagated-inputs
>>>>>> `(("python-jinja2" ,python-jinja2)
>>>>>> ("python-json5" ,python-json5)
>>>>>> ("python-jsonschema" ,python-jsonschema)
>>>>>> ("python-notebook" ,python-notebook)
>>>>>> ("python-requests" ,python-requests)))
>>>>>> (native-inputs
>>>>>> `(("python-pytest" ,python-pytest)
>>>>>> ("python-requests" ,python-requests)))
>>>>>> (home-page "https://jupyter.org")
>>>>>> (synopsis "JupyterLab Server")
>>>>>> (description "JupyterLab Server")
>>>>>> (license license:bsd-3)))
>>>>>>
>>>>>> (define-public python-jupyterlab
>>>>>> (package
>>>>>> (name "python-jupyterlab")
>>>>>> (version "2.1.5")
>>>>>> (source
>>>>>> (origin
>>>>>> (method url-fetch)
>>>>>> (uri (pypi-uri "jupyterlab" version))
>>>>>> (sha256
>>>>>> (base32
>>>>>>
>>>>>> "162jn51cg36fsn4l2zhnb5n4nbkhm9wlv974ggcnmdij3i4r4yya"))))
>>>>>> (build-system python-build-system)
>>>>>> (propagated-inputs
>>>>>> `(("python-jinja2" ,python-jinja2)
>>>>>> ("python-jupyterlab-server"
>>>>>> ,python-jupyterlab-server)
>>>>>> ("python-notebook" ,python-notebook)
>>>>>> ("python-tornado" ,python-tornado)))
>>>>>> (native-inputs
>>>>>> `(("python-pytest" ,python-pytest)
>>>>>> ("python-pytest-check-links"
>>>>>> ,python-pytest-check-links)
>>>>>> ("python-requests" ,python-requests)
>>>>>> ("python-virtualenv" ,python-virtualenv)
>>>>>> ("python-wheel" ,python-wheel)))
>>>>>> (home-page "http://jupyter.org")
>>>>>> (synopsis
>>>>>> "The JupyterLab notebook server extension.")
>>>>>> (description
>>>>>> "The JupyterLab notebook server extension.")
>>>>>> (license license:bsd-3)))
>>>>>>
>>>>>> python-jupyterlab
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> And as noted in the comments, I have 3 questions at this point:
>>>>>>
>>>>>> (Q1) Why are those required packages not imported by guix
>>>>>> automatically?
>>>>>> (My guess: This functionality simply has not yet been implemented.)
>>>>>>
>>>>>> (Q2) Why are the manually imported packages not actually in files
>>>>>> with
>>>>>> their own name, but instead jinja2 -> python-xyt, tornado ->
>>>>>> python-web,
>>>>>> and pytest -> check? Why not (gnu packages python pytest) for
>>>>>> example?
>>>>>>
>>>>>> (Q3) Is my process of finding the files in which the packages are
>>>>>> correct or just working by chance? Basically I am creating temporary
>>>>>> environments, in which I then lookup "where would the package be
>>>>>> installed" and then exit the temporary environment to use that
>>>>>> information in my imported package file's import expressions /
>>>>>> use-modules expression. This seems to be a bit of a convoluted
>>>>>> process,
>>>>>> though worth it, if it always works in the end.
>>>>>>
>>>>>> (4) Now I run my time-machine command:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ guix time-machine --channels=channels.scm -- environment
>>>>>> --manifest=manifest.scm --load=jupyterlab.scm
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> This take a moment and then I get an error (the full output is
>>>>>> longer,
>>>>>> but when running it multiple times, already successful steps are not
>>>>>> all
>>>>>> done repeatedly, so the output is then reduced to what fails):
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ guix time-machine --channels=channels.scm -- environment
>>>>>> --manifest=manifest.scm --load=jupyterlab.scm
>>>>>> Updating channel 'guix' from Git repository at
>>>>>> 'https://git.savannah.gnu.org/git/guix.git'...
>>>>>> The following derivations will be built:
>>>>>>
>>>>>> /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv
>>>>>>
>>>>>> /gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv
>>>>>>
>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv
>>>>>>
>>>>>> 4,2 MB will be downloaded
>>>>>> downloading from
>>>>>> https://ci.guix.gnu.org/nar/lzip/2nahbs5v8q073gjmy224gk0h5lsh1kkw-python-nbconvert-5.0.0b1
>>>>>> ...
>>>>>> python-nbconvert-5.0.0b1 301KiB
>>>>>>
>>>>>>
>>>>>> 2.0MiB/s 00:00 [##################] 100.0%
>>>>>>
>>>>>> building
>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv...
>>>>>> |builder for
>>>>>> `/gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv'
>>>>>> failed to produce output path
>>>>>> `/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz'
>>>>>> build of
>>>>>> /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv
>>>>>> failed
>>>>>> View build log at
>>>>>> '/var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2'.
>>>>>> cannot build derivation
>>>>>> `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv':
>>>>>> 1 dependencies couldn't be built
>>>>>> killing process 7384
>>>>>> guix environment: error: build of
>>>>>> `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv'
>>>>>> failed
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> OK, an error, perhaps I can understand it. Lets look at that log
>>>>>> file:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ cp
>>>>>> /var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2
>>>>>> .
>>>>>> $ bzip2 --decompress
>>>>>> jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2
>>>>>> $ cat
>>>>>> jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv
>>>>>>
>>>>>> Starting download of
>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz
>>>>>> From
>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz...
>>>>>> download failed
>>>>>> "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz"
>>>>>> 404 "Not Found"
>>>>>>
>>>>>> Starting download of
>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz
>>>>>> From
>>>>>> https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal...
>>>>>> download failed
>>>>>> "https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal"
>>>>>> 404 "Not Found"
>>>>>>
>>>>>> Starting download of
>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz
>>>>>> From
>>>>>> https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal...
>>>>>> download failed
>>>>>> "https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal"
>>>>>> 404 "Not Found"
>>>>>>
>>>>>> Starting download of
>>>>>> /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz
>>>>>> From
>>>>>> https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/...
>>>>>> download failed
>>>>>> "https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/"
>>>>>> 404 "Not Found"
>>>>>> failed to download
>>>>>> "/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz"
>>>>>> from
>>>>>> "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz"
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> So it seems, that the jupyterlab-server file is simply not
>>>>>> downloadable
>>>>>> any longer!
>>>>>>
>>>>>> Trying using wget:
>>>>>>
>>>>>> ~~~~START~~~~
>>>>>> $ wget
>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz
>>>>>> --2020-10-18 13:49:52--
>>>>>> https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz
>>>>>> Resolving files.pythonhosted.org (files.pythonhosted.org)...
>>>>>> 2a04:4e42:9::319, 151.101.37.63
>>>>>> Connecting to files.pythonhosted.org
>>>>>> (files.pythonhosted.org)|2a04:4e42:9::319|:443... failed: Connection
>>>>>> refused.
>>>>>> Connecting to files.pythonhosted.org
>>>>>> (files.pythonhosted.org)|151.101.37.63|:443... connected.
>>>>>> HTTP request sent, awaiting response... 404 Not Found
>>>>>> 2020-10-18 13:49:53 ERROR 404: Not Found.
>>>>>> ~~~~~END~~~~~
>>>>>>
>>>>>> So now I am out of ideas. It seems the file is not available any
>>>>>> longer
>>>>>> and the definition of jupyterlab needs to be updated somewhere, so
>>>>>> that
>>>>>> it does not try to download an old or non-existent version of
>>>>>> jupyter-labserver. But how is this usually done? Can I specify it
>>>>>> somewhere in one of the 3 files I have, or am I dependent on someone
>>>>>> fixing the jupyterlab-server dependency / input for juypterlab?
>>>>>>
>>>>>> Thanks for your help so far! Tell me, if I need to provide any more
>>>>>> information to solve the problem.
>>>>> Try chaning the URL line to (uri (pypi-uri "jupyterlab_server"
>>>>> version)),
>>>>> with an underscore (_). I don't have any special suggestions for
>>>>> knowing
>>>>> that it should be an underscore instead of a dash. The best I have is
>>>>> the output from 'guix import pypi jupyterlab-server:
>>>>>
>>>>> (ins)efraim@E5400 ~$ guix import pypi jupyterlab-server
>>>>>
>>>>> Starting download of /tmp/guix-file.ayJ41F
>>>>> From
>>>>> https://files.pythonhosted.org/packages/92/54/5f321ca4cebfb644ac59eb21601b46a2ff9831ffe1b4e5a588f2a7e98d48/jupyterlab_server-1.2.0.tar.gz...
>>>>> …er-1.2.0.tar.gz 22KiB 57KiB/s 00:00
>>>>> [##################] 100.0%
>>>>>
>>>>>
>>>>>
>>>>>> Best regards,
>>>>>> Zelphir
>>>>>>
>>>>>>
>>>>>> On 10/16/20 2:25 PM, Tobias Geerinckx-Rice wrote:
>>>>>>> Zelphir,
>>>>>>>
>>>>>>> Zelphir Kaltstahl 写道:
>>>>>>>> $ guix import pypi 'jupyterlab@2.1.5' --recursive
>>>>>>> It will work if you substitute ‘/’ for ‘@’. Yes, this is a happy
>>>>>>> accident specific to the PyPI importer, and I'm sure you can guess
>>>>>>> why
>>>>>>> it happens to work.
>>>>>>>
>>>>>>>>> guix import hackage mtl@2.1.3.1
>>>>>>>> But that is in the "hackage" import section. Is the same not
>>>>>>>> available
>>>>>>>> for PyPI?
>>>>>>> [...]
>>>>>>>
>>>>>>>> Do the various importers work differently?
>>>>>>> Unfortunately so. It would be great(TM) if PACKAGE[@VERSION] were
>>>>>>> standard. Each importer could handle it properly (e.g., by turning
>>>>>>> it
>>>>>>> into "/") or return a friendlier ‘the foo importer does not yet
>>>>>>> support versions’ error.
>>>>>>>
>>>>>>> I don't have the time, but this sounds like a good
>>>>>>> intermediate-level
>>>>>>> hack for someone who does :-)
>>>>>>>
>>>>>>> Kind regards,
>>>>>>>
>>>>>>> T G-R
>>>>>> --
>>>>>> repositories: https://notabug.org/ZelphirKaltstahl
>>>> --
>>>> repositories: https://notabug.org/ZelphirKaltstahl
>>>> --
>>>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>> --
>>> repositories: https://notabug.org/ZelphirKaltstahl
>> --
>> repositories: https://notabug.org/ZelphirKaltstahl
Regards,
Zelphir
--
repositories: https://notabug.org/ZelphirKaltstahl
- Re: guix import error, (continued)
- Re: guix import error, zimoun, 2020/10/16
- Re: guix import error, Tobias Geerinckx-Rice, 2020/10/16
- Re: guix import error, zimoun, 2020/10/16
- Re: guix import error + New: setting up a jupyterlab environment, Zelphir Kaltstahl, 2020/10/18
- Re: guix import error + New: setting up a jupyterlab environment, Efraim Flashner, 2020/10/18
- Re: guix import error + New: setting up a jupyterlab environment, Zelphir Kaltstahl, 2020/10/19
- Re: guix import error + New: setting up a jupyterlab environment, Efraim Flashner, 2020/10/19
- Re: guix import error + New: setting up a jupyterlab environment, Zelphir Kaltstahl, 2020/10/19
- Re: guix import error + New: setting up a jupyterlab environment, Zelphir Kaltstahl, 2020/10/19
- Re: guix import error + New: setting up a jupyterlab environment, Efraim Flashner, 2020/10/21
- Re: guix import error + New: setting up a jupyterlab environment,
Zelphir Kaltstahl <=
- Re: guix import error + New: setting up a jupyterlab environment, Efraim Flashner, 2020/10/25
- Re: guix import error + New: setting up a jupyterlab environment, Zelphir Kaltstahl, 2020/10/25
- Re: guix import error + New: setting up a jupyterlab environment, Efraim Flashner, 2020/10/21