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? 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 >> <zelphirkaltst...@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