beeware / briefcase

Tools to support converting a Python project into a standalone native application.
https://briefcase.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
2.68k stars 374 forks source link

No `project` table found in: `.../pyproject.toml` #2036

Closed AllenDang closed 1 month ago

AllenDang commented 1 month ago

Describe the bug

I followed the tutorial to create and run the project, and error occurred "error: No project table found in: .../pyproject.toml"

Here is the generated pyproject.toml pyproject.toml.zip

Steps to reproduce

  1. pip install briefcase
  2. briefcase new
  3. cd toga_test
  4. briefcase dev

Expected behavior

Application could be launched normally.

Screenshots

No response

Environment

Logs

No response

Additional context

No response

mhsmith commented 1 month ago

Please post the complete output from the failing command. And if it mentions a log file, please add it to the issue by dragging it into the GitHub comment box.

AllenDang commented 1 month ago

@mhsmith Here is the full command history

Let's build a new Briefcase app!

-- Formal Name ---------------------------------------------------------------

First, we need a formal name for your application.

This is the name that will be displayed to humans whenever the name of the
application is displayed. It can have spaces and punctuation if you like, and
any capitalization will be used as you type it.

Formal Name [Hello World]: TogaTest

-- App Name ------------------------------------------------------------------

Next, we need a name that can serve as a machine-readable Python package name
for your application.

This name must be PEP508-compliant - that means the name may only contain
letters, numbers, hyphens and underscores; it can't contain spaces or
punctuation, and it can't start with a hyphen or underscore.

Based on your formal name, we suggest an app name of 'togatest', but you can
use another name if you want.

App Name [togatest]:

-- Bundle Identifier ---------------------------------------------------------

Now we need a bundle identifier for your application.

App stores need to protect against having multiple applications with the same
name; the bundle identifier is the namespace they use to identify applications
that come from you. The bundle identifier is usually the domain name of your
company or project, in reverse order.

For example, if you are writing an application for Example Corp, whose website
is example.com, your bundle would be 'com.example'. The bundle will be
combined with your application's machine readable name to form a complete
application identifier (e.g., com.example.togatest).

Bundle Identifier [com.example]: com.allen.togatest

-- Project Name --------------------------------------------------------------

Briefcase can manage projects that contain multiple applications, so we need a
Project name.

If you're only planning to have one application in this project, you can use
the formal name as the project name.

Project Name [TogaTest]:

-- Description ---------------------------------------------------------------

Now, we need a one line description for your application.

Description [My first application]:

-- Author --------------------------------------------------------------------

Who do you want to be credited as the author of this application?

This could be your own name, or the name of your company you work for.

Author [Jane Developer]: Allen Dang

-- Author's Email ------------------------------------------------------------

What email address should people use to contact the developers of this
application?

This might be your own email address, or a generic contact address you set up
specifically for this application.

Author's Email [allen@togatest.allen.com]: allengnr@gmail.com

-- Application URL -----------------------------------------------------------

What is the website URL for this application?

If you don't have a website set up yet, you can put in a dummy URL.

Application URL [https://togatest.allen.com/togatest]:

-- Project License -----------------------------------------------------------

What license do you want to use for this project's code?

  1) BSD license
  2) MIT license
  3) Apache Software License
  4) GNU General Public License v2 (GPLv2)
  5) GNU General Public License v2 or later (GPLv2+)
  6) GNU General Public License v3 (GPLv3)
  7) GNU General Public License v3 or later (GPLv3+)
  8) Proprietary
  9) Other

Project License [1]: 2

-- GUI Framework -------------------------------------------------------------

What GUI toolkit do you want to use for this project?

Additional GUI bootstraps are available; visit
https://beeware.org/bee/briefcase-bootstraps for a full list of known GUI
bootstraps.

  1) Toga
  2) PySide6 (does not support iOS/Android/Web deployment)
  3) Pygame  (does not support iOS/Android/Web deployment)
  4) Console (does not support iOS/Android/Web deployment)
  5) None

GUI Framework [1]: 1

------------------------------------------------------------------------------

[togatest] Generating a new application 'TogaTest'
Using app template: https://github.com/beeware/briefcase-template, branch v0.3.20
Using existing template (sha 34632f55ef0d54745008d88598517b19df6e7883, updated Mon Oct 14 09:08:46 2024)

[togatest] Generated new application 'TogaTest'

To run your application, type:

    $ cd togatest
    $ briefcase dev

Run briefcase dev

error: No `project` table found in: `/Users/allen/Documents/PythonProjects/toga_test/togatest/pyproject.toml`
freakboy3742 commented 1 month ago

You've misread the final instructions that Briefcase presents.

To run your application, type:

    $ cd togatest
    $ briefcase dev

You've run briefcase dev, but you haven't run cd togatest first. You need to be in the directory that contains the pyproject.toml file.

AllenDang commented 1 month ago

@freakboy3742 I did run cd toga test first, see the error log, "error: No project table found in: /Users/allen/Documents/PythonProjects/toga_test/togatest/pyproject.toml", the path indicates I'm in the right directory to runbriefcase dev`.

freakboy3742 commented 1 month ago

To be clear - the console output you've provided doesn't say you ran cd toga test (or cd togatest, which would be what you were instructed to do).

Are you able to provide:

  1. The full stack trace, not just the last line of the error message.
  2. The contents of the pyproject.toml file that is in the togatest folder.
AllenDang commented 1 month ago

@freakboy3742 I know what's going on, I'm using uv to create venv for python project, and when I invoke uv run briefcase dev it doesn't work. I have to activate venv first, and run briefcase dev in toga test.